
// -*-c++-*-
//-------------------------------------------------------------------------
//   Copyright 2002-2023 National Technology & Engineering Solutions of
//   Sandia, LLC (NTESS).  Under the terms of Contract DE-NA0003525 with
//   NTESS, the U.S. Government retains certain rights in this software.
//
//   This file is part of the Xyce(TM) Parallel Electrical Simulator.
//
//   Xyce(TM) is free software: you can redistribute it and/or modify
//   it under the terms of the GNU General Public License as published by
//   the Free Software Foundation, either version 3 of the License, or
//   (at your option) any later version.
//
//   Xyce(TM) is distributed in the hope that it will be useful,
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//   GNU General Public License for more details.
//
//   You should have received a copy of the GNU General Public License
//   along with Xyce(TM).
//   If not, see <http://www.gnu.org/licenses/>.
//-------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//
// Purpose        :
//
// Special Notes  : Generated from verilog file bsimsoi450.va with ADMS
//                  interface for Xyce 7.7.0
//                  DO NOT EDIT THIS FILE DIRECTLY!  It may be overwritten!
//
// Creator        : admsXml-2.3.7
//
// Creation Date  : Mon, 09 Jan 2023 12:53:25
//
//-----------------------------------------------------------------------------
#ifndef Xyce_N_DEV_ADMSbsimsoi450_h
#define Xyce_N_DEV_ADMSbsimsoi450_h


#include <N_DEV_Configuration.h>
#include <N_DEV_Const.h>
#include <N_DEV_DeviceBlock.h>
#include <N_DEV_DeviceInstance.h>
#include <N_DEV_DeviceModel.h>
#include <N_DEV_MOSFET1.h>


// Xyce_config.h contains a VERSION macro from autoconf, and some
// Verilog-A models like to define a variable of that name.  This can be
// a serious problem, and we don't need the VERSION macro.  Get rid of it.
// This must happen *after* all the includes of Xyce headers, each of which
// includes Xyce_config.h.  The implementation file must do this all again
// because it includes more Xyce headers *after* including this one.
#ifdef VERSION
#undef VERSION
#endif

namespace Xyce {
namespace Device {
namespace ADMSbsimsoi450 {

class Model;
class Instance;
class InstanceSensitivity;

#ifdef Xyce_ADMS_SENSITIVITIES
//-----------------------------------------------------------------------------
// Class         : InstanceSensitivity
//
// Purpose       : This class is a functor for sensitivity
//
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class InstanceSensitivity : public baseSensitivity
{
public:
InstanceSensitivity() :
baseSensitivity() {};

virtual ~InstanceSensitivity() {};

virtual void operator()(
const ParameterBase &entity,
const std::string &param,
std::vector<double> & dfdp,
std::vector<double> & dqdp,
std::vector<double> & dbdp,
std::vector<int> & Findices,
std::vector<int> & Qindices,
std::vector<int> & Bindices
) const ;
};

static InstanceSensitivity instSens;


//-----------------------------------------------------------------------------
// Class         : ModelSensitivity
//
// Purpose       : This class is a functor for sensitivity
//
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class ModelSensitivity : public baseSensitivity
{
public:
ModelSensitivity() :
baseSensitivity() {};

virtual ~ModelSensitivity() {};

virtual void operator()(
const ParameterBase &entity,
const std::string &param,
std::vector<double> & dfdp,
std::vector<double> & dqdp,
std::vector<double> & dbdp,
std::vector<int> & Findices,
std::vector<int> & Qindices,
std::vector<int> & Bindices
) const ;
};

static ModelSensitivity modSens;
#endif // Xyce_ADMS_SENSITIVITIES

// general purpose free functions
// thermal voltage at kelvin temperature temp)
static inline double adms_vt(const double temp) {return(CONSTKoverQ*temp);};


#ifdef Xyce_ADMS_SENSITIVITIES
//-----------------------------------------------------------------------------
// "structs" to hold instance and model param/variable copies
//-----------------------------------------------------------------------------
class instanceSensStruct
{
public:
// instance parameters
// reals
double instancePar_DTEMP;
double d_instancePar_DTEMP_dX;
bool instancePar_given_DTEMP;
double instancePar_L;
double d_instancePar_L_dX;
bool instancePar_given_L;
double instancePar_W;
double d_instancePar_W_dX;
bool instancePar_given_W;
double instancePar_NF;
double d_instancePar_NF_dX;
bool instancePar_given_NF;
double instancePar_SA;
double d_instancePar_SA_dX;
bool instancePar_given_SA;
double instancePar_SB;
double d_instancePar_SB_dX;
bool instancePar_given_SB;
double instancePar_SD;
double d_instancePar_SD_dX;
bool instancePar_given_SD;
double instancePar_AD;
double d_instancePar_AD_dX;
bool instancePar_given_AD;
double instancePar_AS;
double d_instancePar_AS_dX;
bool instancePar_given_AS;
double instancePar_PD;
double d_instancePar_PD_dX;
bool instancePar_given_PD;
double instancePar_PS;
double d_instancePar_PS_dX;
bool instancePar_given_PS;
double instancePar_NRD;
double d_instancePar_NRD_dX;
bool instancePar_given_NRD;
double instancePar_NRS;
double d_instancePar_NRS_dX;
bool instancePar_given_NRS;
double instancePar_RTH0;
double d_instancePar_RTH0_dX;
bool instancePar_given_RTH0;
double instancePar_CTH0;
double d_instancePar_CTH0_dX;
bool instancePar_given_CTH0;
double instancePar_NRB;
double d_instancePar_NRB_dX;
bool instancePar_given_NRB;
double instancePar_FRBODY;
double d_instancePar_FRBODY_dX;
bool instancePar_given_FRBODY;
double instancePar_RBDB;
double d_instancePar_RBDB_dX;
bool instancePar_given_RBDB;
double instancePar_RBSB;
double d_instancePar_RBSB_dX;
bool instancePar_given_RBSB;
double instancePar_DELVTO;
double d_instancePar_DELVTO_dX;
bool instancePar_given_DELVTO;
double instancePar_NBC;
double d_instancePar_NBC_dX;
bool instancePar_given_NBC;
double instancePar_NSEG;
double d_instancePar_NSEG_dX;
bool instancePar_given_NSEG;
double instancePar_PDBCP;
double d_instancePar_PDBCP_dX;
bool instancePar_given_PDBCP;
double instancePar_PSBCP;
double d_instancePar_PSBCP_dX;
bool instancePar_given_PSBCP;
double instancePar_AGBCP;
double d_instancePar_AGBCP_dX;
bool instancePar_given_AGBCP;
double instancePar_AGBCP2;
double d_instancePar_AGBCP2_dX;
bool instancePar_given_AGBCP2;
double instancePar_AGBCPD;
double d_instancePar_AGBCPD_dX;
bool instancePar_given_AGBCPD;
double instancePar_AEBCP;
double d_instancePar_AEBCP_dX;
bool instancePar_given_AEBCP;
double instancePar_m;
double d_instancePar_m_dX;
bool instancePar_given_m;
// non-reals(including hidden)
int instancePar_OFF;
bool instancePar_given_OFF;
int instancePar_BJTOFF;
bool instancePar_given_BJTOFF;
int instancePar_SOIMOD;
bool instancePar_given_SOIMOD;
int instancePar_TNODEOUT;
bool instancePar_given_TNODEOUT;
int instancePar_SHMOD;
bool instancePar_given_SHMOD;
// instance variables
// reals
double instanceVar_B4SOInf;
double d_instanceVar_B4SOInf_dX;
double instanceVar_B4SOIsa;
double d_instanceVar_B4SOIsa_dX;
double instanceVar_B4SOIsb;
double d_instanceVar_B4SOIsb_dX;
double instanceVar_B4SOIsd;
double d_instanceVar_B4SOIsd_dX;
double instanceVar_B4SOIrth0;
double d_instanceVar_B4SOIrth0_dX;
double instanceVar_B4SOIcth0;
double d_instanceVar_B4SOIcth0_dX;
double instanceVar_B4SOInbc;
double d_instanceVar_B4SOInbc_dX;
double instanceVar_B4SOInseg;
double d_instanceVar_B4SOInseg_dX;
double instanceVar_B4SOIagbcp;
double d_instanceVar_B4SOIagbcp_dX;
double instanceVar_B4SOIagbcp2;
double d_instanceVar_B4SOIagbcp2_dX;
double instanceVar_B4SOIagbcpd;
double d_instanceVar_B4SOIagbcpd_dX;
double instanceVar_B4SOIaebcp;
double d_instanceVar_B4SOIaebcp_dX;
double instanceVar_B4SOIeot;
double d_instanceVar_B4SOIeot_dX;
double instanceVar_B4SOIepsrsub;
double d_instanceVar_B4SOIepsrsub_dX;
double instanceVar_B4SOIni0sub;
double d_instanceVar_B4SOIni0sub_dX;
double instanceVar_B4SOIbg0sub;
double d_instanceVar_B4SOIbg0sub_dX;
double instanceVar_B4SOItbgasub;
double d_instanceVar_B4SOItbgasub_dX;
double instanceVar_B4SOItbgbsub;
double d_instanceVar_B4SOItbgbsub_dX;
double instanceVar_B4SOIphig;
double d_instanceVar_B4SOIphig_dX;
double instanceVar_B4SOIeasub;
double d_instanceVar_B4SOIeasub_dX;
double instanceVar_B4SOIleffeot;
double d_instanceVar_B4SOIleffeot_dX;
double instanceVar_B4SOIweffeot;
double d_instanceVar_B4SOIweffeot_dX;
double instanceVar_B4SOIados;
double d_instanceVar_B4SOIados_dX;
double instanceVar_B4SOIbdos;
double d_instanceVar_B4SOIbdos_dX;
double instanceVar_B4SOIepsrgate;
double d_instanceVar_B4SOIepsrgate_dX;
double instanceVar_B4SOItox;
double d_instanceVar_B4SOItox_dX;
double instanceVar_B4SOItoxp;
double d_instanceVar_B4SOItoxp_dX;
double instanceVar_B4SOItoxm;
double d_instanceVar_B4SOItoxm_dX;
double instanceVar_B4SOIdtoxcv;
double d_instanceVar_B4SOIdtoxcv_dX;
double instanceVar_B4SOInpeak;
double d_instanceVar_B4SOInpeak_dX;
double instanceVar_B4SOIngate;
double d_instanceVar_B4SOIngate_dX;
double instanceVar_B4SOInsd;
double d_instanceVar_B4SOInsd_dX;
double instanceVar_B4SOItnom;
double d_instanceVar_B4SOItnom_dX;
double instanceVar_B4SOIxpart;
double d_instanceVar_B4SOIxpart_dX;
double instanceVar_B4SOIrswmin;
double d_instanceVar_B4SOIrswmin_dX;
double instanceVar_B4SOIrdwmin;
double d_instanceVar_B4SOIrdwmin_dX;
double instanceVar_B4SOItbox;
double d_instanceVar_B4SOItbox_dX;
double instanceVar_B4SOItsi;
double d_instanceVar_B4SOItsi_dX;
double instanceVar_B4SOIegidl;
double d_instanceVar_B4SOIegidl_dX;
double instanceVar_B4SOIagidl;
double d_instanceVar_B4SOIagidl_dX;
double instanceVar_B4SOIbgidl;
double d_instanceVar_B4SOIbgidl_dX;
double instanceVar_B4SOIcgidl;
double d_instanceVar_B4SOIcgidl_dX;
double instanceVar_B4SOIegisl;
double d_instanceVar_B4SOIegisl_dX;
double instanceVar_B4SOIagisl;
double d_instanceVar_B4SOIagisl_dX;
double instanceVar_B4SOIbgisl;
double d_instanceVar_B4SOIbgisl_dX;
double instanceVar_B4SOIcgisl;
double d_instanceVar_B4SOIcgisl_dX;
double instanceVar_B4SOIndiode;
double d_instanceVar_B4SOIndiode_dX;
double instanceVar_B4SOIndioded;
double d_instanceVar_B4SOIndioded_dX;
double instanceVar_B4SOIGatesidewallJctSPotential;
double d_instanceVar_B4SOIGatesidewallJctSPotential_dX;
double instanceVar_B4SOIGatesidewallJctDPotential;
double d_instanceVar_B4SOIGatesidewallJctDPotential_dX;
double instanceVar_B4SOIbodyJctGateSideSGradingCoeff;
double d_instanceVar_B4SOIbodyJctGateSideSGradingCoeff_dX;
double instanceVar_B4SOIbodyJctGateSideDGradingCoeff;
double d_instanceVar_B4SOIbodyJctGateSideDGradingCoeff_dX;
double instanceVar_B4SOIunitLengthGateSidewallJctCapS;
double d_instanceVar_B4SOIunitLengthGateSidewallJctCapS_dX;
double instanceVar_B4SOIunitLengthGateSidewallJctCapD;
double d_instanceVar_B4SOIunitLengthGateSidewallJctCapD_dX;
double instanceVar_B4SOIoxideTrapDensityA;
double d_instanceVar_B4SOIoxideTrapDensityA_dX;
double instanceVar_B4SOIoxideTrapDensityB;
double d_instanceVar_B4SOIoxideTrapDensityB_dX;
double instanceVar_B4SOIoxideTrapDensityC;
double d_instanceVar_B4SOIoxideTrapDensityC_dX;
double instanceVar_B4SOItnoia;
double d_instanceVar_B4SOItnoia_dX;
double instanceVar_B4SOItnoib;
double d_instanceVar_B4SOItnoib_dX;
double instanceVar_B4SOIrnoia;
double d_instanceVar_B4SOIrnoia_dX;
double instanceVar_B4SOIrnoib;
double d_instanceVar_B4SOIrnoib_dX;
double instanceVar_B4SOIntnoi;
double d_instanceVar_B4SOIntnoi_dX;
double instanceVar_B4SOIsaref;
double d_instanceVar_B4SOIsaref_dX;
double instanceVar_B4SOIsbref;
double d_instanceVar_B4SOIsbref_dX;
double instanceVar_B4SOIku0;
double d_instanceVar_B4SOIku0_dX;
double instanceVar_B4SOIkvsat;
double d_instanceVar_B4SOIkvsat_dX;
double instanceVar_B4SOItku0;
double d_instanceVar_B4SOItku0_dX;
double instanceVar_B4SOIlodk2;
double d_instanceVar_B4SOIlodk2_dX;
double instanceVar_B4SOIlodeta0;
double d_instanceVar_B4SOIlodeta0_dX;
double instanceVar_B4SOIlodeta0cv;
double d_instanceVar_B4SOIlodeta0cv_dX;
double instanceVar_B4SOIbf;
double d_instanceVar_B4SOIbf_dX;
double instanceVar_B4SOIw0flk;
double d_instanceVar_B4SOIw0flk_dX;
double instanceVar_B4SOIpditsl;
double d_instanceVar_B4SOIpditsl_dX;
double instanceVar_B4SOIem;
double d_instanceVar_B4SOIem_dX;
double instanceVar_B4SOIef;
double d_instanceVar_B4SOIef_dX;
double instanceVar_B4SOIaf;
double d_instanceVar_B4SOIaf_dX;
double instanceVar_B4SOIkf;
double d_instanceVar_B4SOIkf_dX;
double instanceVar_B4SOInoif;
double d_instanceVar_B4SOInoif_dX;
double instanceVar_B4SOIk1w1;
double d_instanceVar_B4SOIk1w1_dX;
double instanceVar_B4SOIk1w2;
double d_instanceVar_B4SOIk1w2_dX;
double instanceVar_B4SOIketas;
double d_instanceVar_B4SOIketas_dX;
double instanceVar_B4SOIdwbc;
double d_instanceVar_B4SOIdwbc_dX;
double instanceVar_B4SOIbeta0;
double d_instanceVar_B4SOIbeta0_dX;
double instanceVar_B4SOIbeta1;
double d_instanceVar_B4SOIbeta1_dX;
double instanceVar_B4SOIbeta2;
double d_instanceVar_B4SOIbeta2_dX;
double instanceVar_B4SOItii;
double d_instanceVar_B4SOItii_dX;
double instanceVar_B4SOIlii;
double d_instanceVar_B4SOIlii_dX;
double instanceVar_B4SOIsii1;
double d_instanceVar_B4SOIsii1_dX;
double instanceVar_B4SOIsii2;
double d_instanceVar_B4SOIsii2_dX;
double instanceVar_B4SOIsiid;
double d_instanceVar_B4SOIsiid_dX;
double instanceVar_B4SOIfbjtii;
double d_instanceVar_B4SOIfbjtii_dX;
double instanceVar_B4SOItvbci;
double d_instanceVar_B4SOItvbci_dX;
double instanceVar_B4SOIesatii;
double d_instanceVar_B4SOIesatii_dX;
double instanceVar_B4SOIntun;
double d_instanceVar_B4SOIntun_dX;
double instanceVar_B4SOIntund;
double d_instanceVar_B4SOIntund_dX;
double instanceVar_B4SOIisbjt;
double d_instanceVar_B4SOIisbjt_dX;
double instanceVar_B4SOIidbjt;
double d_instanceVar_B4SOIidbjt_dX;
double instanceVar_B4SOIisdif;
double d_instanceVar_B4SOIisdif_dX;
double instanceVar_B4SOIiddif;
double d_instanceVar_B4SOIiddif_dX;
double instanceVar_B4SOIisrec;
double d_instanceVar_B4SOIisrec_dX;
double instanceVar_B4SOIidrec;
double d_instanceVar_B4SOIidrec_dX;
double instanceVar_B4SOIistun;
double d_instanceVar_B4SOIistun_dX;
double instanceVar_B4SOIidtun;
double d_instanceVar_B4SOIidtun_dX;
double instanceVar_B4SOIvrec0;
double d_instanceVar_B4SOIvrec0_dX;
double instanceVar_B4SOIvrec0d;
double d_instanceVar_B4SOIvrec0d_dX;
double instanceVar_B4SOIvtun0;
double d_instanceVar_B4SOIvtun0_dX;
double instanceVar_B4SOIvtun0d;
double d_instanceVar_B4SOIvtun0d_dX;
double instanceVar_B4SOInbjt;
double d_instanceVar_B4SOInbjt_dX;
double instanceVar_B4SOIaely;
double d_instanceVar_B4SOIaely_dX;
double instanceVar_B4SOIahli;
double d_instanceVar_B4SOIahli_dX;
double instanceVar_B4SOIahlid;
double d_instanceVar_B4SOIahlid_dX;
double instanceVar_B4SOIrbody;
double d_instanceVar_B4SOIrbody_dX;
double instanceVar_B4SOIrbsh;
double d_instanceVar_B4SOIrbsh_dX;
double instanceVar_B4SOItt;
double d_instanceVar_B4SOItt_dX;
double instanceVar_B4SOIcsdmin;
double d_instanceVar_B4SOIcsdmin_dX;
double instanceVar_B4SOIasd;
double d_instanceVar_B4SOIasd_dX;
double instanceVar_B4SOIcsdesw;
double d_instanceVar_B4SOIcsdesw_dX;
double instanceVar_B4SOIfbody;
double d_instanceVar_B4SOIfbody_dX;
double instanceVar_B4SOItcjswg;
double d_instanceVar_B4SOItcjswg_dX;
double instanceVar_B4SOItpbswg;
double d_instanceVar_B4SOItpbswg_dX;
double instanceVar_B4SOItcjswgd;
double d_instanceVar_B4SOItcjswgd_dX;
double instanceVar_B4SOItpbswgd;
double d_instanceVar_B4SOItpbswgd_dX;
double instanceVar_B4SOIacde;
double d_instanceVar_B4SOIacde_dX;
double instanceVar_B4SOImoin;
double d_instanceVar_B4SOImoin_dX;
double instanceVar_B4SOIdlbg;
double d_instanceVar_B4SOIdlbg_dX;
double instanceVar_B4SOItoxqm;
double d_instanceVar_B4SOItoxqm_dX;
double instanceVar_B4SOIwth0;
double d_instanceVar_B4SOIwth0_dX;
double instanceVar_B4SOIrhalo;
double d_instanceVar_B4SOIrhalo_dX;
double instanceVar_B4SOIntox;
double d_instanceVar_B4SOIntox_dX;
double instanceVar_B4SOItoxref;
double d_instanceVar_B4SOItoxref_dX;
double instanceVar_B4SOIebg;
double d_instanceVar_B4SOIebg_dX;
double instanceVar_B4SOIvevb;
double d_instanceVar_B4SOIvevb_dX;
double instanceVar_B4SOIvgb1;
double d_instanceVar_B4SOIvgb1_dX;
double instanceVar_B4SOIvecb;
double d_instanceVar_B4SOIvecb_dX;
double instanceVar_B4SOIvgb2;
double d_instanceVar_B4SOIvgb2_dX;
double instanceVar_B4SOIvoxh;
double d_instanceVar_B4SOIvoxh_dX;
double instanceVar_B4SOIdeltavox;
double d_instanceVar_B4SOIdeltavox_dX;
double instanceVar_B4SOIvbsa;
double d_instanceVar_B4SOIvbsa_dX;
double instanceVar_B4SOInofffd;
double d_instanceVar_B4SOInofffd_dX;
double instanceVar_B4SOIvofffd;
double d_instanceVar_B4SOIvofffd_dX;
double instanceVar_B4SOIk1b;
double d_instanceVar_B4SOIk1b_dX;
double instanceVar_B4SOIk2b;
double d_instanceVar_B4SOIk2b_dX;
double instanceVar_B4SOIdk2b;
double d_instanceVar_B4SOIdk2b_dX;
double instanceVar_B4SOIdvbd0;
double d_instanceVar_B4SOIdvbd0_dX;
double instanceVar_B4SOIdvbd1;
double d_instanceVar_B4SOIdvbd1_dX;
double instanceVar_B4SOImoinFD;
double d_instanceVar_B4SOImoinFD_dX;
double instanceVar_B4SOIvsce;
double d_instanceVar_B4SOIvsce_dX;
double instanceVar_B4SOIcdsbs;
double d_instanceVar_B4SOIcdsbs_dX;
double instanceVar_B4SOIvtm;
double d_instanceVar_B4SOIvtm_dX;
double instanceVar_B4SOIueff;
double d_instanceVar_B4SOIueff_dX;
double instanceVar_B4SOIthetavth;
double d_instanceVar_B4SOIthetavth_dX;
double instanceVar_B4SOIInv_ODeff;
double d_instanceVar_B4SOIInv_ODeff_dX;
double instanceVar_B4SOIgrbsb;
double d_instanceVar_B4SOIgrbsb_dX;
double instanceVar_B4SOIgrbdb;
double d_instanceVar_B4SOIgrbdb_dX;
double instanceVar_B4SOIgstot;
double d_instanceVar_B4SOIgstot_dX;
double instanceVar_B4SOIgdtot;
double d_instanceVar_B4SOIgdtot_dX;
double instanceVar_B4SOITempSH;
double d_instanceVar_B4SOITempSH_dX;
double instanceVar_B4SOIgrgeltd;
double d_instanceVar_B4SOIgrgeltd_dX;
double instanceVar_B4SOIsourceConductance;
double d_instanceVar_B4SOIsourceConductance_dX;
double instanceVar_B4SOIdrainConductance;
double d_instanceVar_B4SOIdrainConductance_dX;
double instanceVar_B4SOIvfbzb;
double d_instanceVar_B4SOIvfbzb_dX;
double instanceVar_B4SOIvtfbphi1;
double d_instanceVar_B4SOIvtfbphi1_dX;
double instanceVar_B4SOIvgsteffvth;
double d_instanceVar_B4SOIvgsteffvth_dX;
double instanceVar_B4SOIrbodyext;
double d_instanceVar_B4SOIrbodyext_dX;
double instanceVar_B4SOIcsesw;
double d_instanceVar_B4SOIcsesw_dX;
double instanceVar_B4SOIcdesw;
double d_instanceVar_B4SOIcdesw_dX;
double instanceVar_B4SOIcsbox;
double d_instanceVar_B4SOIcsbox_dX;
double instanceVar_B4SOIcdbox;
double d_instanceVar_B4SOIcdbox_dX;
double instanceVar_B4SOIcsmin;
double d_instanceVar_B4SOIcsmin_dX;
double instanceVar_B4SOIcdmin;
double d_instanceVar_B4SOIcdmin_dX;
double instanceVar_B4SOIst4;
double d_instanceVar_B4SOIst4_dX;
double instanceVar_B4SOIdt4;
double d_instanceVar_B4SOIdt4_dX;
double instanceVar_B4SOInstar;
double d_instanceVar_B4SOInstar_dX;
double instanceVar_B4SOIAbulk;
double d_instanceVar_B4SOIAbulk_dX;
double instanceVar_B4SOIqinv;
double d_instanceVar_B4SOIqinv_dX;
double instanceVar_B4SOIgm;
double d_instanceVar_B4SOIgm_dX;
double instanceVar_B4SOIgds;
double d_instanceVar_B4SOIgds_dX;
double instanceVar_B4SOIgmbs;
double d_instanceVar_B4SOIgmbs_dX;
double instanceVar_B4SOIrds;
double d_instanceVar_B4SOIrds_dX;
double instanceVar_B4SOIVgsteff;
double d_instanceVar_B4SOIVgsteff_dX;
double instanceVar_B4SOIVdseff;
double d_instanceVar_B4SOIVdseff_dX;
double instanceVar_B4SOIAbovVgst2Vtm;
double d_instanceVar_B4SOIAbovVgst2Vtm_dX;
double instanceVar_B4SOIidovVds;
double d_instanceVar_B4SOIidovVds_dX;
double instanceVar_pParam_B4SOIcdsc;
double d_instanceVar_pParam_B4SOIcdsc_dX;
double instanceVar_pParam_B4SOIcdscb;
double d_instanceVar_pParam_B4SOIcdscb_dX;
double instanceVar_pParam_B4SOIcdscd;
double d_instanceVar_pParam_B4SOIcdscd_dX;
double instanceVar_pParam_B4SOIcit;
double d_instanceVar_pParam_B4SOIcit_dX;
double instanceVar_pParam_B4SOInfactor;
double d_instanceVar_pParam_B4SOInfactor_dX;
double instanceVar_pParam_B4SOIvsat;
double d_instanceVar_pParam_B4SOIvsat_dX;
double instanceVar_pParam_B4SOIat;
double d_instanceVar_pParam_B4SOIat_dX;
double instanceVar_pParam_B4SOIa0;
double d_instanceVar_pParam_B4SOIa0_dX;
double instanceVar_pParam_B4SOIags;
double d_instanceVar_pParam_B4SOIags_dX;
double instanceVar_pParam_B4SOIa1;
double d_instanceVar_pParam_B4SOIa1_dX;
double instanceVar_pParam_B4SOIa2;
double d_instanceVar_pParam_B4SOIa2_dX;
double instanceVar_pParam_B4SOIketa;
double d_instanceVar_pParam_B4SOIketa_dX;
double instanceVar_pParam_B4SOInpeak;
double d_instanceVar_pParam_B4SOInpeak_dX;
double instanceVar_pParam_B4SOInsub;
double d_instanceVar_pParam_B4SOInsub_dX;
double instanceVar_pParam_B4SOIngate;
double d_instanceVar_pParam_B4SOIngate_dX;
double instanceVar_pParam_B4SOIgamma1;
double d_instanceVar_pParam_B4SOIgamma1_dX;
double instanceVar_pParam_B4SOIgamma2;
double d_instanceVar_pParam_B4SOIgamma2_dX;
double instanceVar_pParam_B4SOIvbx;
double d_instanceVar_pParam_B4SOIvbx_dX;
double instanceVar_pParam_B4SOIvbi;
double d_instanceVar_pParam_B4SOIvbi_dX;
double instanceVar_pParam_B4SOIvbm;
double d_instanceVar_pParam_B4SOIvbm_dX;
double instanceVar_pParam_B4SOIxt;
double d_instanceVar_pParam_B4SOIxt_dX;
double instanceVar_pParam_B4SOIphi;
double d_instanceVar_pParam_B4SOIphi_dX;
double instanceVar_pParam_B4SOIlitl;
double d_instanceVar_pParam_B4SOIlitl_dX;
double instanceVar_pParam_B4SOIk1;
double d_instanceVar_pParam_B4SOIk1_dX;
double instanceVar_pParam_B4SOIkt1;
double d_instanceVar_pParam_B4SOIkt1_dX;
double instanceVar_pParam_B4SOIkt1l;
double d_instanceVar_pParam_B4SOIkt1l_dX;
double instanceVar_pParam_B4SOIkt2;
double d_instanceVar_pParam_B4SOIkt2_dX;
double instanceVar_pParam_B4SOIk2;
double d_instanceVar_pParam_B4SOIk2_dX;
double instanceVar_pParam_B4SOIk3;
double d_instanceVar_pParam_B4SOIk3_dX;
double instanceVar_pParam_B4SOIk3b;
double d_instanceVar_pParam_B4SOIk3b_dX;
double instanceVar_pParam_B4SOIw0;
double d_instanceVar_pParam_B4SOIw0_dX;
double instanceVar_pParam_B4SOIlpe0;
double d_instanceVar_pParam_B4SOIlpe0_dX;
double instanceVar_pParam_B4SOIdvt0;
double d_instanceVar_pParam_B4SOIdvt0_dX;
double instanceVar_pParam_B4SOIdvt1;
double d_instanceVar_pParam_B4SOIdvt1_dX;
double instanceVar_pParam_B4SOIdvt2;
double d_instanceVar_pParam_B4SOIdvt2_dX;
double instanceVar_pParam_B4SOIdvt0w;
double d_instanceVar_pParam_B4SOIdvt0w_dX;
double instanceVar_pParam_B4SOIdvt1w;
double d_instanceVar_pParam_B4SOIdvt1w_dX;
double instanceVar_pParam_B4SOIdvt2w;
double d_instanceVar_pParam_B4SOIdvt2w_dX;
double instanceVar_pParam_B4SOIdrout;
double d_instanceVar_pParam_B4SOIdrout_dX;
double instanceVar_pParam_B4SOIdsub;
double d_instanceVar_pParam_B4SOIdsub_dX;
double instanceVar_pParam_B4SOIua;
double d_instanceVar_pParam_B4SOIua_dX;
double instanceVar_pParam_B4SOIua1;
double d_instanceVar_pParam_B4SOIua1_dX;
double instanceVar_pParam_B4SOIub;
double d_instanceVar_pParam_B4SOIub_dX;
double instanceVar_pParam_B4SOIub1;
double d_instanceVar_pParam_B4SOIub1_dX;
double instanceVar_pParam_B4SOIuc;
double d_instanceVar_pParam_B4SOIuc_dX;
double instanceVar_pParam_B4SOIuc1;
double d_instanceVar_pParam_B4SOIuc1_dX;
double instanceVar_pParam_B4SOIu0;
double d_instanceVar_pParam_B4SOIu0_dX;
double instanceVar_pParam_B4SOIute;
double d_instanceVar_pParam_B4SOIute_dX;
double instanceVar_pParam_B4SOIud;
double d_instanceVar_pParam_B4SOIud_dX;
double instanceVar_pParam_B4SOIud1;
double d_instanceVar_pParam_B4SOIud1_dX;
double instanceVar_pParam_B4SOIeu;
double d_instanceVar_pParam_B4SOIeu_dX;
double instanceVar_pParam_B4SOIucs;
double d_instanceVar_pParam_B4SOIucs_dX;
double instanceVar_pParam_B4SOIucste;
double d_instanceVar_pParam_B4SOIucste_dX;
double instanceVar_pParam_B4SOIvoff;
double d_instanceVar_pParam_B4SOIvoff_dX;
double instanceVar_pParam_B4SOIvfb;
double d_instanceVar_pParam_B4SOIvfb_dX;
double instanceVar_pParam_B4SOIuatemp;
double d_instanceVar_pParam_B4SOIuatemp_dX;
double instanceVar_pParam_B4SOIubtemp;
double d_instanceVar_pParam_B4SOIubtemp_dX;
double instanceVar_pParam_B4SOIuctemp;
double d_instanceVar_pParam_B4SOIuctemp_dX;
double instanceVar_pParam_B4SOIrbody;
double d_instanceVar_pParam_B4SOIrbody_dX;
double instanceVar_pParam_B4SOIrth;
double d_instanceVar_pParam_B4SOIrth_dX;
double instanceVar_pParam_B4SOIcth;
double d_instanceVar_pParam_B4SOIcth_dX;
double instanceVar_pParam_B4SOIrds0denom;
double d_instanceVar_pParam_B4SOIrds0denom_dX;
double instanceVar_pParam_B4SOIvfbb;
double d_instanceVar_pParam_B4SOIvfbb_dX;
double instanceVar_pParam_B4SOIjbjts;
double d_instanceVar_pParam_B4SOIjbjts_dX;
double instanceVar_pParam_B4SOIjbjtd;
double d_instanceVar_pParam_B4SOIjbjtd_dX;
double instanceVar_pParam_B4SOIjdifs;
double d_instanceVar_pParam_B4SOIjdifs_dX;
double instanceVar_pParam_B4SOIjdifd;
double d_instanceVar_pParam_B4SOIjdifd_dX;
double instanceVar_pParam_B4SOIjrecs;
double d_instanceVar_pParam_B4SOIjrecs_dX;
double instanceVar_pParam_B4SOIjrecd;
double d_instanceVar_pParam_B4SOIjrecd_dX;
double instanceVar_pParam_B4SOIjtuns;
double d_instanceVar_pParam_B4SOIjtuns_dX;
double instanceVar_pParam_B4SOIjtund;
double d_instanceVar_pParam_B4SOIjtund_dX;
double instanceVar_pParam_B4SOIrdw;
double d_instanceVar_pParam_B4SOIrdw_dX;
double instanceVar_pParam_B4SOIrsw;
double d_instanceVar_pParam_B4SOIrsw_dX;
double instanceVar_pParam_B4SOIrdwmin;
double d_instanceVar_pParam_B4SOIrdwmin_dX;
double instanceVar_pParam_B4SOIrswmin;
double d_instanceVar_pParam_B4SOIrswmin_dX;
double instanceVar_pParam_B4SOIrd0;
double d_instanceVar_pParam_B4SOIrd0_dX;
double instanceVar_pParam_B4SOIrs0;
double d_instanceVar_pParam_B4SOIrs0_dX;
double instanceVar_pParam_B4SOIsdt1;
double d_instanceVar_pParam_B4SOIsdt1_dX;
double instanceVar_pParam_B4SOIst2;
double d_instanceVar_pParam_B4SOIst2_dX;
double instanceVar_pParam_B4SOIst3;
double d_instanceVar_pParam_B4SOIst3_dX;
double instanceVar_pParam_B4SOIdt2;
double d_instanceVar_pParam_B4SOIdt2_dX;
double instanceVar_pParam_B4SOIdt3;
double d_instanceVar_pParam_B4SOIdt3_dX;
double instanceVar_pParam_B4SOIdelta;
double d_instanceVar_pParam_B4SOIdelta_dX;
double instanceVar_pParam_B4SOIrdsw;
double d_instanceVar_pParam_B4SOIrdsw_dX;
double instanceVar_pParam_B4SOIrds0;
double d_instanceVar_pParam_B4SOIrds0_dX;
double instanceVar_pParam_B4SOIprwg;
double d_instanceVar_pParam_B4SOIprwg_dX;
double instanceVar_pParam_B4SOIprwb;
double d_instanceVar_pParam_B4SOIprwb_dX;
double instanceVar_pParam_B4SOIprt;
double d_instanceVar_pParam_B4SOIprt_dX;
double instanceVar_pParam_B4SOIeta0;
double d_instanceVar_pParam_B4SOIeta0_dX;
double instanceVar_pParam_B4SOIetab;
double d_instanceVar_pParam_B4SOIetab_dX;
double instanceVar_pParam_B4SOIeta0cv;
double d_instanceVar_pParam_B4SOIeta0cv_dX;
double instanceVar_pParam_B4SOIetabcv;
double d_instanceVar_pParam_B4SOIetabcv_dX;
double instanceVar_pParam_B4SOIpclm;
double d_instanceVar_pParam_B4SOIpclm_dX;
double instanceVar_pParam_B4SOIpdibl1;
double d_instanceVar_pParam_B4SOIpdibl1_dX;
double instanceVar_pParam_B4SOIpdibl2;
double d_instanceVar_pParam_B4SOIpdibl2_dX;
double instanceVar_pParam_B4SOIpdiblb;
double d_instanceVar_pParam_B4SOIpdiblb_dX;
double instanceVar_pParam_B4SOIpvag;
double d_instanceVar_pParam_B4SOIpvag_dX;
double instanceVar_pParam_B4SOIdwg;
double d_instanceVar_pParam_B4SOIdwg_dX;
double instanceVar_pParam_B4SOIdwb;
double d_instanceVar_pParam_B4SOIdwb_dX;
double instanceVar_pParam_B4SOIb0;
double d_instanceVar_pParam_B4SOIb0_dX;
double instanceVar_pParam_B4SOIb1;
double d_instanceVar_pParam_B4SOIb1_dX;
double instanceVar_pParam_B4SOIalpha0;
double d_instanceVar_pParam_B4SOIalpha0_dX;
double instanceVar_pParam_B4SOIbeta0;
double d_instanceVar_pParam_B4SOIbeta0_dX;
double instanceVar_pParam_B4SOIaigc;
double d_instanceVar_pParam_B4SOIaigc_dX;
double instanceVar_pParam_B4SOIbigc;
double d_instanceVar_pParam_B4SOIbigc_dX;
double instanceVar_pParam_B4SOIcigc;
double d_instanceVar_pParam_B4SOIcigc_dX;
double instanceVar_pParam_B4SOIaigsd;
double d_instanceVar_pParam_B4SOIaigsd_dX;
double instanceVar_pParam_B4SOIbigsd;
double d_instanceVar_pParam_B4SOIbigsd_dX;
double instanceVar_pParam_B4SOIcigsd;
double d_instanceVar_pParam_B4SOIcigsd_dX;
double instanceVar_pParam_B4SOInigc;
double d_instanceVar_pParam_B4SOInigc_dX;
double instanceVar_pParam_B4SOIpigcd;
double d_instanceVar_pParam_B4SOIpigcd_dX;
double instanceVar_pParam_B4SOIpoxedge;
double d_instanceVar_pParam_B4SOIpoxedge_dX;
double instanceVar_pParam_B4SOIxrcrg1;
double d_instanceVar_pParam_B4SOIxrcrg1_dX;
double instanceVar_pParam_B4SOIxrcrg2;
double d_instanceVar_pParam_B4SOIxrcrg2_dX;
double instanceVar_pParam_B4SOIku0;
double d_instanceVar_pParam_B4SOIku0_dX;
double instanceVar_pParam_B4SOIinv_od_ref;
double d_instanceVar_pParam_B4SOIinv_od_ref_dX;
double instanceVar_pParam_B4SOIcgsl;
double d_instanceVar_pParam_B4SOIcgsl_dX;
double instanceVar_pParam_B4SOIcgdl;
double d_instanceVar_pParam_B4SOIcgdl_dX;
double instanceVar_pParam_B4SOIckappa;
double d_instanceVar_pParam_B4SOIckappa_dX;
double instanceVar_pParam_B4SOIclc;
double d_instanceVar_pParam_B4SOIclc_dX;
double instanceVar_pParam_B4SOIxj;
double d_instanceVar_pParam_B4SOIxj_dX;
double instanceVar_pParam_B4SOIalphaGB1;
double d_instanceVar_pParam_B4SOIalphaGB1_dX;
double instanceVar_pParam_B4SOIbetaGB1;
double d_instanceVar_pParam_B4SOIbetaGB1_dX;
double instanceVar_pParam_B4SOIalphaGB2;
double d_instanceVar_pParam_B4SOIalphaGB2_dX;
double instanceVar_pParam_B4SOIbetaGB2;
double d_instanceVar_pParam_B4SOIbetaGB2_dX;
double instanceVar_pParam_B4SOIaigbcp2;
double d_instanceVar_pParam_B4SOIaigbcp2_dX;
double instanceVar_pParam_B4SOIbigbcp2;
double d_instanceVar_pParam_B4SOIbigbcp2_dX;
double instanceVar_pParam_B4SOIcigbcp2;
double d_instanceVar_pParam_B4SOIcigbcp2_dX;
double instanceVar_pParam_B4SOIntrecf;
double d_instanceVar_pParam_B4SOIntrecf_dX;
double instanceVar_pParam_B4SOIntrecr;
double d_instanceVar_pParam_B4SOIntrecr_dX;
double instanceVar_pParam_B4SOIxbjt;
double d_instanceVar_pParam_B4SOIxbjt_dX;
double instanceVar_pParam_B4SOIxdif;
double d_instanceVar_pParam_B4SOIxdif_dX;
double instanceVar_pParam_B4SOIxrec;
double d_instanceVar_pParam_B4SOIxrec_dX;
double instanceVar_pParam_B4SOIxtun;
double d_instanceVar_pParam_B4SOIxtun_dX;
double instanceVar_pParam_B4SOIxdifd;
double d_instanceVar_pParam_B4SOIxdifd_dX;
double instanceVar_pParam_B4SOIxrecd;
double d_instanceVar_pParam_B4SOIxrecd_dX;
double instanceVar_pParam_B4SOIxtund;
double d_instanceVar_pParam_B4SOIxtund_dX;
double instanceVar_pParam_B4SOIkb1;
double d_instanceVar_pParam_B4SOIkb1_dX;
double instanceVar_pParam_B4SOIk1w1;
double d_instanceVar_pParam_B4SOIk1w1_dX;
double instanceVar_pParam_B4SOIk1w2;
double d_instanceVar_pParam_B4SOIk1w2_dX;
double instanceVar_pParam_B4SOIketas;
double d_instanceVar_pParam_B4SOIketas_dX;
double instanceVar_pParam_B4SOIfbjtii;
double d_instanceVar_pParam_B4SOIfbjtii_dX;
double instanceVar_pParam_B4SOIebjtii;
double d_instanceVar_pParam_B4SOIebjtii_dX;
double instanceVar_pParam_B4SOIcbjtii;
double d_instanceVar_pParam_B4SOIcbjtii_dX;
double instanceVar_pParam_B4SOIvbci;
double d_instanceVar_pParam_B4SOIvbci_dX;
double instanceVar_pParam_B4SOIabjtii;
double d_instanceVar_pParam_B4SOIabjtii_dX;
double instanceVar_pParam_B4SOImbjtii;
double d_instanceVar_pParam_B4SOImbjtii_dX;
double instanceVar_pParam_B4SOIbeta1;
double d_instanceVar_pParam_B4SOIbeta1_dX;
double instanceVar_pParam_B4SOIbeta2;
double d_instanceVar_pParam_B4SOIbeta2_dX;
double instanceVar_pParam_B4SOIvdsatii0;
double d_instanceVar_pParam_B4SOIvdsatii0_dX;
double instanceVar_pParam_B4SOIlii;
double d_instanceVar_pParam_B4SOIlii_dX;
double instanceVar_pParam_B4SOIesatii;
double d_instanceVar_pParam_B4SOIesatii_dX;
double instanceVar_pParam_B4SOIsii0;
double d_instanceVar_pParam_B4SOIsii0_dX;
double instanceVar_pParam_B4SOIsii1;
double d_instanceVar_pParam_B4SOIsii1_dX;
double instanceVar_pParam_B4SOIsii2;
double d_instanceVar_pParam_B4SOIsii2_dX;
double instanceVar_pParam_B4SOIsiid;
double d_instanceVar_pParam_B4SOIsiid_dX;
double instanceVar_pParam_B4SOIagidl;
double d_instanceVar_pParam_B4SOIagidl_dX;
double instanceVar_pParam_B4SOIbgidl;
double d_instanceVar_pParam_B4SOIbgidl_dX;
double instanceVar_pParam_B4SOIcgidl;
double d_instanceVar_pParam_B4SOIcgidl_dX;
double instanceVar_pParam_B4SOIegidl;
double d_instanceVar_pParam_B4SOIegidl_dX;
double instanceVar_pParam_B4SOIrgidl;
double d_instanceVar_pParam_B4SOIrgidl_dX;
double instanceVar_pParam_B4SOIkgidl;
double d_instanceVar_pParam_B4SOIkgidl_dX;
double instanceVar_pParam_B4SOIfgidl;
double d_instanceVar_pParam_B4SOIfgidl_dX;
double instanceVar_pParam_B4SOIagisl;
double d_instanceVar_pParam_B4SOIagisl_dX;
double instanceVar_pParam_B4SOIbgisl;
double d_instanceVar_pParam_B4SOIbgisl_dX;
double instanceVar_pParam_B4SOIcgisl;
double d_instanceVar_pParam_B4SOIcgisl_dX;
double instanceVar_pParam_B4SOIegisl;
double d_instanceVar_pParam_B4SOIegisl_dX;
double instanceVar_pParam_B4SOIrgisl;
double d_instanceVar_pParam_B4SOIrgisl_dX;
double instanceVar_pParam_B4SOIkgisl;
double d_instanceVar_pParam_B4SOIkgisl_dX;
double instanceVar_pParam_B4SOIfgisl;
double d_instanceVar_pParam_B4SOIfgisl_dX;
double instanceVar_pParam_B4SOIntun;
double d_instanceVar_pParam_B4SOIntun_dX;
double instanceVar_pParam_B4SOIntund;
double d_instanceVar_pParam_B4SOIntund_dX;
double instanceVar_pParam_B4SOIndiode;
double d_instanceVar_pParam_B4SOIndiode_dX;
double instanceVar_pParam_B4SOIndioded;
double d_instanceVar_pParam_B4SOIndioded_dX;
double instanceVar_pParam_B4SOInrecf0;
double d_instanceVar_pParam_B4SOInrecf0_dX;
double instanceVar_pParam_B4SOInrecf0d;
double d_instanceVar_pParam_B4SOInrecf0d_dX;
double instanceVar_pParam_B4SOInrecr0;
double d_instanceVar_pParam_B4SOInrecr0_dX;
double instanceVar_pParam_B4SOInrecr0d;
double d_instanceVar_pParam_B4SOInrecr0d_dX;
double instanceVar_pParam_B4SOIisbjt;
double d_instanceVar_pParam_B4SOIisbjt_dX;
double instanceVar_pParam_B4SOIidbjt;
double d_instanceVar_pParam_B4SOIidbjt_dX;
double instanceVar_pParam_B4SOIisdif;
double d_instanceVar_pParam_B4SOIisdif_dX;
double instanceVar_pParam_B4SOIiddif;
double d_instanceVar_pParam_B4SOIiddif_dX;
double instanceVar_pParam_B4SOIisrec;
double d_instanceVar_pParam_B4SOIisrec_dX;
double instanceVar_pParam_B4SOIidrec;
double d_instanceVar_pParam_B4SOIidrec_dX;
double instanceVar_pParam_B4SOIistun;
double d_instanceVar_pParam_B4SOIistun_dX;
double instanceVar_pParam_B4SOIidtun;
double d_instanceVar_pParam_B4SOIidtun_dX;
double instanceVar_pParam_B4SOIvrec0;
double d_instanceVar_pParam_B4SOIvrec0_dX;
double instanceVar_pParam_B4SOIvrec0d;
double d_instanceVar_pParam_B4SOIvrec0d_dX;
double instanceVar_pParam_B4SOIvtun0;
double d_instanceVar_pParam_B4SOIvtun0_dX;
double instanceVar_pParam_B4SOIvtun0d;
double d_instanceVar_pParam_B4SOIvtun0d_dX;
double instanceVar_pParam_B4SOIvsdfb;
double d_instanceVar_pParam_B4SOIvsdfb_dX;
double instanceVar_pParam_B4SOIvsdth;
double d_instanceVar_pParam_B4SOIvsdth_dX;
double instanceVar_pParam_B4SOIdelvt;
double d_instanceVar_pParam_B4SOIdelvt_dX;
double instanceVar_pParam_B4SOIleff;
double d_instanceVar_pParam_B4SOIleff_dX;
double instanceVar_pParam_B4SOIweff;
double d_instanceVar_pParam_B4SOIweff_dX;
double instanceVar_pParam_B4SOIleffCV;
double d_instanceVar_pParam_B4SOIleffCV_dX;
double instanceVar_pParam_B4SOIweffCV;
double d_instanceVar_pParam_B4SOIweffCV_dX;
double instanceVar_pParam_B4SOIabulkCVfactor;
double d_instanceVar_pParam_B4SOIabulkCVfactor_dX;
double instanceVar_pParam_B4SOIcgso;
double d_instanceVar_pParam_B4SOIcgso_dX;
double instanceVar_pParam_B4SOIcgdo;
double d_instanceVar_pParam_B4SOIcgdo_dX;
double instanceVar_pParam_B4SOIcgeo;
double d_instanceVar_pParam_B4SOIcgeo_dX;
double instanceVar_pParam_B4SOIu0temp;
double d_instanceVar_pParam_B4SOIu0temp_dX;
double instanceVar_pParam_B4SOIvsattemp;
double d_instanceVar_pParam_B4SOIvsattemp_dX;
double instanceVar_pParam_B4SOIsqrtPhi;
double d_instanceVar_pParam_B4SOIsqrtPhi_dX;
double instanceVar_pParam_B4SOIXdep0;
double d_instanceVar_pParam_B4SOIXdep0_dX;
double instanceVar_pParam_B4SOItheta0vb0;
double d_instanceVar_pParam_B4SOItheta0vb0_dX;
double instanceVar_pParam_B4SOIthetaRout;
double d_instanceVar_pParam_B4SOIthetaRout_dX;
double instanceVar_pParam_B4SOIqsi;
double d_instanceVar_pParam_B4SOIqsi_dX;
double instanceVar_pParam_B4SOIoxideRatio;
double d_instanceVar_pParam_B4SOIoxideRatio_dX;
double instanceVar_pParam_B4SOIk1eff;
double d_instanceVar_pParam_B4SOIk1eff_dX;
double instanceVar_pParam_B4SOIwdios;
double d_instanceVar_pParam_B4SOIwdios_dX;
double instanceVar_pParam_B4SOIwdiod;
double d_instanceVar_pParam_B4SOIwdiod_dX;
double instanceVar_pParam_B4SOIwdiodCV;
double d_instanceVar_pParam_B4SOIwdiodCV_dX;
double instanceVar_pParam_B4SOIwdiosCV;
double d_instanceVar_pParam_B4SOIwdiosCV_dX;
double instanceVar_pParam_B4SOIarfabjt;
double d_instanceVar_pParam_B4SOIarfabjt_dX;
double instanceVar_pParam_B4SOIlratio;
double d_instanceVar_pParam_B4SOIlratio_dX;
double instanceVar_pParam_B4SOIlratiodif;
double d_instanceVar_pParam_B4SOIlratiodif_dX;
double instanceVar_pParam_B4SOIvearly;
double d_instanceVar_pParam_B4SOIvearly_dX;
double instanceVar_pParam_B4SOIahli;
double d_instanceVar_pParam_B4SOIahli_dX;
double instanceVar_pParam_B4SOIahlid;
double d_instanceVar_pParam_B4SOIahlid_dX;
double instanceVar_pParam_B4SOIahli0s;
double d_instanceVar_pParam_B4SOIahli0s_dX;
double instanceVar_pParam_B4SOIahli0d;
double d_instanceVar_pParam_B4SOIahli0d_dX;
double instanceVar_pParam_B4SOIldeb;
double d_instanceVar_pParam_B4SOIldeb_dX;
double instanceVar_pParam_B4SOIacde;
double d_instanceVar_pParam_B4SOIacde_dX;
double instanceVar_pParam_B4SOImoin;
double d_instanceVar_pParam_B4SOImoin_dX;
double instanceVar_pParam_B4SOInoff;
double d_instanceVar_pParam_B4SOInoff_dX;
double instanceVar_pParam_B4SOIleffCVb;
double d_instanceVar_pParam_B4SOIleffCVb_dX;
double instanceVar_pParam_B4SOIleffCVbg;
double d_instanceVar_pParam_B4SOIleffCVbg_dX;
double instanceVar_pParam_B4SOIcdep0;
double d_instanceVar_pParam_B4SOIcdep0_dX;
double instanceVar_pParam_B4SOIAechvb;
double d_instanceVar_pParam_B4SOIAechvb_dX;
double instanceVar_pParam_B4SOIBechvb;
double d_instanceVar_pParam_B4SOIBechvb_dX;
double instanceVar_pParam_B4SOIAechvbEdges;
double d_instanceVar_pParam_B4SOIAechvbEdges_dX;
double instanceVar_pParam_B4SOIAechvbEdged;
double d_instanceVar_pParam_B4SOIAechvbEdged_dX;
double instanceVar_pParam_B4SOIBechvbEdge;
double d_instanceVar_pParam_B4SOIBechvbEdge_dX;
double instanceVar_pParam_B4SOIvfbsd;
double d_instanceVar_pParam_B4SOIvfbsd_dX;
double instanceVar_pParam_B4SOIk1ox;
double d_instanceVar_pParam_B4SOIk1ox_dX;
double instanceVar_pParam_B4SOIlpeb;
double d_instanceVar_pParam_B4SOIlpeb_dX;
double instanceVar_pParam_B4SOIdvtp0;
double d_instanceVar_pParam_B4SOIdvtp0_dX;
double instanceVar_pParam_B4SOIdvtp1;
double d_instanceVar_pParam_B4SOIdvtp1_dX;
double instanceVar_pParam_B4SOIdvtp4;
double d_instanceVar_pParam_B4SOIdvtp4_dX;
double instanceVar_pParam_B4SOImstar;
double d_instanceVar_pParam_B4SOImstar_dX;
double instanceVar_pParam_B4SOIfprout;
double d_instanceVar_pParam_B4SOIfprout_dX;
double instanceVar_pParam_B4SOIpdits;
double d_instanceVar_pParam_B4SOIpdits_dX;
double instanceVar_pParam_B4SOIpditsd;
double d_instanceVar_pParam_B4SOIpditsd_dX;
double instanceVar_pParam_B4SOImstarcv;
double d_instanceVar_pParam_B4SOImstarcv_dX;
double instanceVar_pParam_B4SOIvoffcv;
double d_instanceVar_pParam_B4SOIvoffcv_dX;
double instanceVar_pParam_B4SOIdvtp2factor;
double d_instanceVar_pParam_B4SOIdvtp2factor_dX;
double instanceVar_B4SOIcbox;
double d_instanceVar_B4SOIcbox_dX;
double instanceVar_B4SOIcsi;
double d_instanceVar_B4SOIcsi_dX;
double instanceVar_B4SOIeg0;
double d_instanceVar_B4SOIeg0_dX;
double instanceVar_B4SOIeg;
double d_instanceVar_B4SOIeg_dX;
double instanceVar_B4SOIcox;
double d_instanceVar_B4SOIcox_dX;
double instanceVar_B4SOIfactor1;
double d_instanceVar_B4SOIfactor1_dX;
double instanceVar_here_B4SOIeta0;
double d_instanceVar_here_B4SOIeta0_dX;
double instanceVar_here_B4SOIeta0cv;
double d_instanceVar_here_B4SOIeta0cv_dX;
double instanceVar_here_B4SOIk2;
double d_instanceVar_here_B4SOIk2_dX;
double instanceVar_here_B4SOIk2ox;
double d_instanceVar_here_B4SOIk2ox_dX;
double instanceVar_here_B4SOIu0temp;
double d_instanceVar_here_B4SOIu0temp_dX;
double instanceVar_here_B4SOIvfb;
double d_instanceVar_here_B4SOIvfb_dX;
double instanceVar_here_B4SOIvsattemp;
double d_instanceVar_here_B4SOIvsattemp_dX;
double instanceVar_here_B4SOIvth0;
double d_instanceVar_here_B4SOIvth0_dX;
double instanceVar_DevTemp;
double d_instanceVar_DevTemp_dX;
double instanceVar_fourkt;
double d_instanceVar_fourkt_dX;
double instanceVar_gdnoise;
double d_instanceVar_gdnoise_dX;
double instanceVar_gsnoise;
double d_instanceVar_gsnoise_dX;
double instanceVar_toxe;
double d_instanceVar_toxe_dX;
double instanceVar_epsrox;
double d_instanceVar_epsrox_dX;
double instanceVar_epssub;
double d_instanceVar_epssub_dX;
double instanceVar_sqrt2qeps;
double d_instanceVar_sqrt2qeps_dX;
double instanceVar_eggbcp2;
double d_instanceVar_eggbcp2_dX;
double instanceVar_eggdep;
double d_instanceVar_eggdep_dX;
double instanceVar_Vtm00;
double d_instanceVar_Vtm00_dX;
double instanceVar_agb1;
double d_instanceVar_agb1_dX;
double instanceVar_bgb1;
double d_instanceVar_bgb1_dX;
double instanceVar_agb2;
double d_instanceVar_agb2_dX;
double instanceVar_bgb2;
double d_instanceVar_bgb2_dX;
double instanceVar_agbc2n;
double d_instanceVar_agbc2n_dX;
double instanceVar_agbc2p;
double d_instanceVar_agbc2p_dX;
double instanceVar_bgbc2n;
double d_instanceVar_bgbc2n_dX;
double instanceVar_bgbc2p;
double d_instanceVar_bgbc2p_dX;
// non-reals
int instanceVar_B4SOItype;
int instanceVar_B4SOIbjtoff;
int instanceVar_B4SOIsoiMod;
int instanceVar_B4SOIrgateMod;
int instanceVar_B4SOIrbodyMod;
int instanceVar_B4SOImtrlMod;
int instanceVar_B4SOIvgstcvMod;
int instanceVar_B4SOIgidlMod;
int instanceVar_B4SOIiiiMod;
int instanceVar_B4SOIcapMod;
int instanceVar_B4SOImobMod;
int instanceVar_B4SOIigbMod;
int instanceVar_B4SOIigcMod;
int instanceVar_B4SOIrdsMod;
int instanceVar_B4SOIfdMod;
int instanceVar_B4SOImode;
int instanceVar_B4SOIbodyMod;
};

class modelSensStruct
{
public:
// model parameters
// reals
double modelPar_VERSION;
double d_modelPar_VERSION_dX;
bool modelPar_given_VERSION;
double modelPar_L;
double d_modelPar_L_dX;
bool modelPar_given_L;
double modelPar_W;
double d_modelPar_W_dX;
bool modelPar_given_W;
double modelPar_NF;
double d_modelPar_NF_dX;
bool modelPar_given_NF;
double modelPar_SA;
double d_modelPar_SA_dX;
bool modelPar_given_SA;
double modelPar_SB;
double d_modelPar_SB_dX;
bool modelPar_given_SB;
double modelPar_SD;
double d_modelPar_SD_dX;
bool modelPar_given_SD;
double modelPar_AD;
double d_modelPar_AD_dX;
bool modelPar_given_AD;
double modelPar_AS;
double d_modelPar_AS_dX;
bool modelPar_given_AS;
double modelPar_PD;
double d_modelPar_PD_dX;
bool modelPar_given_PD;
double modelPar_PS;
double d_modelPar_PS_dX;
bool modelPar_given_PS;
double modelPar_NRD;
double d_modelPar_NRD_dX;
bool modelPar_given_NRD;
double modelPar_NRS;
double d_modelPar_NRS_dX;
bool modelPar_given_NRS;
double modelPar_RTH0;
double d_modelPar_RTH0_dX;
bool modelPar_given_RTH0;
double modelPar_CTH0;
double d_modelPar_CTH0_dX;
bool modelPar_given_CTH0;
double modelPar_NRB;
double d_modelPar_NRB_dX;
bool modelPar_given_NRB;
double modelPar_FRBODY;
double d_modelPar_FRBODY_dX;
bool modelPar_given_FRBODY;
double modelPar_RBDB;
double d_modelPar_RBDB_dX;
bool modelPar_given_RBDB;
double modelPar_RBSB;
double d_modelPar_RBSB_dX;
bool modelPar_given_RBSB;
double modelPar_DELVTO;
double d_modelPar_DELVTO_dX;
bool modelPar_given_DELVTO;
double modelPar_NBC;
double d_modelPar_NBC_dX;
bool modelPar_given_NBC;
double modelPar_NSEG;
double d_modelPar_NSEG_dX;
bool modelPar_given_NSEG;
double modelPar_PDBCP;
double d_modelPar_PDBCP_dX;
bool modelPar_given_PDBCP;
double modelPar_PSBCP;
double d_modelPar_PSBCP_dX;
bool modelPar_given_PSBCP;
double modelPar_AGBCP;
double d_modelPar_AGBCP_dX;
bool modelPar_given_AGBCP;
double modelPar_AGBCP2;
double d_modelPar_AGBCP2_dX;
bool modelPar_given_AGBCP2;
double modelPar_AGBCPD;
double d_modelPar_AGBCPD_dX;
bool modelPar_given_AGBCPD;
double modelPar_AEBCP;
double d_modelPar_AEBCP_dX;
bool modelPar_given_AEBCP;
double modelPar_VBSUSR;
double d_modelPar_VBSUSR_dX;
bool modelPar_given_VBSUSR;
double modelPar_EOT;
double d_modelPar_EOT_dX;
bool modelPar_given_EOT;
double modelPar_EPSROX;
double d_modelPar_EPSROX_dX;
bool modelPar_given_EPSROX;
double modelPar_EPSRSUB;
double d_modelPar_EPSRSUB_dX;
bool modelPar_given_EPSRSUB;
double modelPar_NI0SUB;
double d_modelPar_NI0SUB_dX;
bool modelPar_given_NI0SUB;
double modelPar_BG0SUB;
double d_modelPar_BG0SUB_dX;
bool modelPar_given_BG0SUB;
double modelPar_TBGASUB;
double d_modelPar_TBGASUB_dX;
bool modelPar_given_TBGASUB;
double modelPar_TBGBSUB;
double d_modelPar_TBGBSUB_dX;
bool modelPar_given_TBGBSUB;
double modelPar_PHIG;
double d_modelPar_PHIG_dX;
bool modelPar_given_PHIG;
double modelPar_EASUB;
double d_modelPar_EASUB_dX;
bool modelPar_given_EASUB;
double modelPar_LEFFEOT;
double d_modelPar_LEFFEOT_dX;
bool modelPar_given_LEFFEOT;
double modelPar_WEFFEOT;
double d_modelPar_WEFFEOT_dX;
bool modelPar_given_WEFFEOT;
double modelPar_VDDEOT;
double d_modelPar_VDDEOT_dX;
bool modelPar_given_VDDEOT;
double modelPar_TEMPEOT;
double d_modelPar_TEMPEOT_dX;
bool modelPar_given_TEMPEOT;
double modelPar_ADOS;
double d_modelPar_ADOS_dX;
bool modelPar_given_ADOS;
double modelPar_BDOS;
double d_modelPar_BDOS_dX;
bool modelPar_given_BDOS;
double modelPar_EPSRGATE;
double d_modelPar_EPSRGATE_dX;
bool modelPar_given_EPSRGATE;
double modelPar_TOX;
double d_modelPar_TOX_dX;
bool modelPar_given_TOX;
double modelPar_TOXP;
double d_modelPar_TOXP_dX;
bool modelPar_given_TOXP;
double modelPar_TOXM;
double d_modelPar_TOXM_dX;
bool modelPar_given_TOXM;
double modelPar_DTOXCV;
double d_modelPar_DTOXCV_dX;
bool modelPar_given_DTOXCV;
double modelPar_CDSC;
double d_modelPar_CDSC_dX;
bool modelPar_given_CDSC;
double modelPar_CDSCB;
double d_modelPar_CDSCB_dX;
bool modelPar_given_CDSCB;
double modelPar_CDSCD;
double d_modelPar_CDSCD_dX;
bool modelPar_given_CDSCD;
double modelPar_CIT;
double d_modelPar_CIT_dX;
bool modelPar_given_CIT;
double modelPar_NFACTOR;
double d_modelPar_NFACTOR_dX;
bool modelPar_given_NFACTOR;
double modelPar_VSAT;
double d_modelPar_VSAT_dX;
bool modelPar_given_VSAT;
double modelPar_AT;
double d_modelPar_AT_dX;
bool modelPar_given_AT;
double modelPar_A0;
double d_modelPar_A0_dX;
bool modelPar_given_A0;
double modelPar_AGS;
double d_modelPar_AGS_dX;
bool modelPar_given_AGS;
double modelPar_A1;
double d_modelPar_A1_dX;
bool modelPar_given_A1;
double modelPar_A2;
double d_modelPar_A2_dX;
bool modelPar_given_A2;
double modelPar_KETA;
double d_modelPar_KETA_dX;
bool modelPar_given_KETA;
double modelPar_NSUB;
double d_modelPar_NSUB_dX;
bool modelPar_given_NSUB;
double modelPar_NCH;
double d_modelPar_NCH_dX;
bool modelPar_given_NCH;
double modelPar_NGATE;
double d_modelPar_NGATE_dX;
bool modelPar_given_NGATE;
double modelPar_NSD;
double d_modelPar_NSD_dX;
bool modelPar_given_NSD;
double modelPar_GAMMA1;
double d_modelPar_GAMMA1_dX;
bool modelPar_given_GAMMA1;
double modelPar_GAMMA2;
double d_modelPar_GAMMA2_dX;
bool modelPar_given_GAMMA2;
double modelPar_VBX;
double d_modelPar_VBX_dX;
bool modelPar_given_VBX;
double modelPar_VBM;
double d_modelPar_VBM_dX;
bool modelPar_given_VBM;
double modelPar_XT;
double d_modelPar_XT_dX;
bool modelPar_given_XT;
double modelPar_K1;
double d_modelPar_K1_dX;
bool modelPar_given_K1;
double modelPar_KT1;
double d_modelPar_KT1_dX;
bool modelPar_given_KT1;
double modelPar_KT1L;
double d_modelPar_KT1L_dX;
bool modelPar_given_KT1L;
double modelPar_KT2;
double d_modelPar_KT2_dX;
bool modelPar_given_KT2;
double modelPar_K2;
double d_modelPar_K2_dX;
bool modelPar_given_K2;
double modelPar_K3;
double d_modelPar_K3_dX;
bool modelPar_given_K3;
double modelPar_K3B;
double d_modelPar_K3B_dX;
bool modelPar_given_K3B;
double modelPar_W0;
double d_modelPar_W0_dX;
bool modelPar_given_W0;
double modelPar_LPEB;
double d_modelPar_LPEB_dX;
bool modelPar_given_LPEB;
double modelPar_DVT0;
double d_modelPar_DVT0_dX;
bool modelPar_given_DVT0;
double modelPar_DVT1;
double d_modelPar_DVT1_dX;
bool modelPar_given_DVT1;
double modelPar_DVT2;
double d_modelPar_DVT2_dX;
bool modelPar_given_DVT2;
double modelPar_DVT0W;
double d_modelPar_DVT0W_dX;
bool modelPar_given_DVT0W;
double modelPar_DVT1W;
double d_modelPar_DVT1W_dX;
bool modelPar_given_DVT1W;
double modelPar_DVT2W;
double d_modelPar_DVT2W_dX;
bool modelPar_given_DVT2W;
double modelPar_DROUT;
double d_modelPar_DROUT_dX;
bool modelPar_given_DROUT;
double modelPar_DSUB;
double d_modelPar_DSUB_dX;
bool modelPar_given_DSUB;
double modelPar_VTHO;
double d_modelPar_VTHO_dX;
bool modelPar_given_VTHO;
double modelPar_VTH0;
double d_modelPar_VTH0_dX;
bool modelPar_given_VTH0;
double modelPar_VFB;
double d_modelPar_VFB_dX;
bool modelPar_given_VFB;
double modelPar_UA;
double d_modelPar_UA_dX;
bool modelPar_given_UA;
double modelPar_UA1;
double d_modelPar_UA1_dX;
bool modelPar_given_UA1;
double modelPar_UB;
double d_modelPar_UB_dX;
bool modelPar_given_UB;
double modelPar_UB1;
double d_modelPar_UB1_dX;
bool modelPar_given_UB1;
double modelPar_UC;
double d_modelPar_UC_dX;
bool modelPar_given_UC;
double modelPar_UC1;
double d_modelPar_UC1_dX;
bool modelPar_given_UC1;
double modelPar_U0;
double d_modelPar_U0_dX;
bool modelPar_given_U0;
double modelPar_EU;
double d_modelPar_EU_dX;
bool modelPar_given_EU;
double modelPar_UTE;
double d_modelPar_UTE_dX;
bool modelPar_given_UTE;
double modelPar_UCS;
double d_modelPar_UCS_dX;
bool modelPar_given_UCS;
double modelPar_UCSTE;
double d_modelPar_UCSTE_dX;
bool modelPar_given_UCSTE;
double modelPar_UD;
double d_modelPar_UD_dX;
bool modelPar_given_UD;
double modelPar_UD1;
double d_modelPar_UD1_dX;
bool modelPar_given_UD1;
double modelPar_VOFF;
double d_modelPar_VOFF_dX;
bool modelPar_given_VOFF;
double modelPar_TNOM;
double d_modelPar_TNOM_dX;
bool modelPar_given_TNOM;
double modelPar_CGSO;
double d_modelPar_CGSO_dX;
bool modelPar_given_CGSO;
double modelPar_CGDO;
double d_modelPar_CGDO_dX;
bool modelPar_given_CGDO;
double modelPar_XPART;
double d_modelPar_XPART_dX;
bool modelPar_given_XPART;
double modelPar_DELTA;
double d_modelPar_DELTA_dX;
bool modelPar_given_DELTA;
double modelPar_RSH;
double d_modelPar_RSH_dX;
bool modelPar_given_RSH;
double modelPar_RDSW;
double d_modelPar_RDSW_dX;
bool modelPar_given_RDSW;
double modelPar_RSW;
double d_modelPar_RSW_dX;
bool modelPar_given_RSW;
double modelPar_RDW;
double d_modelPar_RDW_dX;
bool modelPar_given_RDW;
double modelPar_RSWMIN;
double d_modelPar_RSWMIN_dX;
bool modelPar_given_RSWMIN;
double modelPar_RDWMIN;
double d_modelPar_RDWMIN_dX;
bool modelPar_given_RDWMIN;
double modelPar_PRWG;
double d_modelPar_PRWG_dX;
bool modelPar_given_PRWG;
double modelPar_PRWB;
double d_modelPar_PRWB_dX;
bool modelPar_given_PRWB;
double modelPar_PRT;
double d_modelPar_PRT_dX;
bool modelPar_given_PRT;
double modelPar_ETA0;
double d_modelPar_ETA0_dX;
bool modelPar_given_ETA0;
double modelPar_ETAB;
double d_modelPar_ETAB_dX;
bool modelPar_given_ETAB;
double modelPar_ETA0CV;
double d_modelPar_ETA0CV_dX;
bool modelPar_given_ETA0CV;
double modelPar_ETABCV;
double d_modelPar_ETABCV_dX;
bool modelPar_given_ETABCV;
double modelPar_PCLM;
double d_modelPar_PCLM_dX;
bool modelPar_given_PCLM;
double modelPar_PDIBLC1;
double d_modelPar_PDIBLC1_dX;
bool modelPar_given_PDIBLC1;
double modelPar_PDIBLC2;
double d_modelPar_PDIBLC2_dX;
bool modelPar_given_PDIBLC2;
double modelPar_PDIBLCB;
double d_modelPar_PDIBLCB_dX;
bool modelPar_given_PDIBLCB;
double modelPar_PVAG;
double d_modelPar_PVAG_dX;
bool modelPar_given_PVAG;
double modelPar_TBOX;
double d_modelPar_TBOX_dX;
bool modelPar_given_TBOX;
double modelPar_TSI;
double d_modelPar_TSI_dX;
bool modelPar_given_TSI;
double modelPar_ETSI;
double d_modelPar_ETSI_dX;
bool modelPar_given_ETSI;
double modelPar_XJ;
double d_modelPar_XJ_dX;
bool modelPar_given_XJ;
double modelPar_AGIDL;
double d_modelPar_AGIDL_dX;
bool modelPar_given_AGIDL;
double modelPar_BGIDL;
double d_modelPar_BGIDL_dX;
bool modelPar_given_BGIDL;
double modelPar_CGIDL;
double d_modelPar_CGIDL_dX;
bool modelPar_given_CGIDL;
double modelPar_RGIDL;
double d_modelPar_RGIDL_dX;
bool modelPar_given_RGIDL;
double modelPar_KGIDL;
double d_modelPar_KGIDL_dX;
bool modelPar_given_KGIDL;
double modelPar_FGIDL;
double d_modelPar_FGIDL_dX;
bool modelPar_given_FGIDL;
double modelPar_AGISL;
double d_modelPar_AGISL_dX;
bool modelPar_given_AGISL;
double modelPar_BGISL;
double d_modelPar_BGISL_dX;
bool modelPar_given_BGISL;
double modelPar_CGISL;
double d_modelPar_CGISL_dX;
bool modelPar_given_CGISL;
double modelPar_RGISL;
double d_modelPar_RGISL_dX;
bool modelPar_given_RGISL;
double modelPar_KGISL;
double d_modelPar_KGISL_dX;
bool modelPar_given_KGISL;
double modelPar_FGISL;
double d_modelPar_FGISL_dX;
bool modelPar_given_FGISL;
double modelPar_NDIODE;
double d_modelPar_NDIODE_dX;
bool modelPar_given_NDIODE;
double modelPar_NDIODED;
double d_modelPar_NDIODED_dX;
bool modelPar_given_NDIODED;
double modelPar_XBJT;
double d_modelPar_XBJT_dX;
bool modelPar_given_XBJT;
double modelPar_XDIF;
double d_modelPar_XDIF_dX;
bool modelPar_given_XDIF;
double modelPar_XREC;
double d_modelPar_XREC_dX;
bool modelPar_given_XREC;
double modelPar_XTUN;
double d_modelPar_XTUN_dX;
bool modelPar_given_XTUN;
double modelPar_XDIFD;
double d_modelPar_XDIFD_dX;
bool modelPar_given_XDIFD;
double modelPar_XRECD;
double d_modelPar_XRECD_dX;
bool modelPar_given_XRECD;
double modelPar_XTUND;
double d_modelPar_XTUND_dX;
bool modelPar_given_XTUND;
double modelPar_PBSWG;
double d_modelPar_PBSWG_dX;
bool modelPar_given_PBSWG;
double modelPar_PBSWGD;
double d_modelPar_PBSWGD_dX;
bool modelPar_given_PBSWGD;
double modelPar_MJSWG;
double d_modelPar_MJSWG_dX;
bool modelPar_given_MJSWG;
double modelPar_MJSWGD;
double d_modelPar_MJSWGD_dX;
bool modelPar_given_MJSWGD;
double modelPar_CJSWG;
double d_modelPar_CJSWG_dX;
bool modelPar_given_CJSWG;
double modelPar_CJSWGD;
double d_modelPar_CJSWGD_dX;
bool modelPar_given_CJSWGD;
double modelPar_LINT;
double d_modelPar_LINT_dX;
bool modelPar_given_LINT;
double modelPar_LL;
double d_modelPar_LL_dX;
bool modelPar_given_LL;
double modelPar_LLC;
double d_modelPar_LLC_dX;
bool modelPar_given_LLC;
double modelPar_LLN;
double d_modelPar_LLN_dX;
bool modelPar_given_LLN;
double modelPar_LW;
double d_modelPar_LW_dX;
bool modelPar_given_LW;
double modelPar_LWC;
double d_modelPar_LWC_dX;
bool modelPar_given_LWC;
double modelPar_LWN;
double d_modelPar_LWN_dX;
bool modelPar_given_LWN;
double modelPar_LWL;
double d_modelPar_LWL_dX;
bool modelPar_given_LWL;
double modelPar_LWLC;
double d_modelPar_LWLC_dX;
bool modelPar_given_LWLC;
double modelPar_WR;
double d_modelPar_WR_dX;
bool modelPar_given_WR;
double modelPar_WINT;
double d_modelPar_WINT_dX;
bool modelPar_given_WINT;
double modelPar_DWG;
double d_modelPar_DWG_dX;
bool modelPar_given_DWG;
double modelPar_DWB;
double d_modelPar_DWB_dX;
bool modelPar_given_DWB;
double modelPar_WL;
double d_modelPar_WL_dX;
bool modelPar_given_WL;
double modelPar_WLC;
double d_modelPar_WLC_dX;
bool modelPar_given_WLC;
double modelPar_WLN;
double d_modelPar_WLN_dX;
bool modelPar_given_WLN;
double modelPar_WW;
double d_modelPar_WW_dX;
bool modelPar_given_WW;
double modelPar_WWC;
double d_modelPar_WWC_dX;
bool modelPar_given_WWC;
double modelPar_WWN;
double d_modelPar_WWN_dX;
bool modelPar_given_WWN;
double modelPar_WWL;
double d_modelPar_WWL_dX;
bool modelPar_given_WWL;
double modelPar_WWLC;
double d_modelPar_WWLC_dX;
bool modelPar_given_WWLC;
double modelPar_B0;
double d_modelPar_B0_dX;
bool modelPar_given_B0;
double modelPar_B1;
double d_modelPar_B1_dX;
bool modelPar_given_B1;
double modelPar_CGSL;
double d_modelPar_CGSL_dX;
bool modelPar_given_CGSL;
double modelPar_CGDL;
double d_modelPar_CGDL_dX;
bool modelPar_given_CGDL;
double modelPar_CKAPPA;
double d_modelPar_CKAPPA_dX;
bool modelPar_given_CKAPPA;
double modelPar_CF;
double d_modelPar_CF_dX;
bool modelPar_given_CF;
double modelPar_CLC;
double d_modelPar_CLC_dX;
bool modelPar_given_CLC;
double modelPar_CLE;
double d_modelPar_CLE_dX;
bool modelPar_given_CLE;
double modelPar_DWC;
double d_modelPar_DWC_dX;
bool modelPar_given_DWC;
double modelPar_DLC;
double d_modelPar_DLC_dX;
bool modelPar_given_DLC;
double modelPar_ALPHA0;
double d_modelPar_ALPHA0_dX;
bool modelPar_given_ALPHA0;
double modelPar_NOIA;
double d_modelPar_NOIA_dX;
bool modelPar_given_NOIA;
double modelPar_NOIB;
double d_modelPar_NOIB_dX;
bool modelPar_given_NOIB;
double modelPar_NOIC;
double d_modelPar_NOIC_dX;
bool modelPar_given_NOIC;
double modelPar_TNOIA;
double d_modelPar_TNOIA_dX;
bool modelPar_given_TNOIA;
double modelPar_TNOIB;
double d_modelPar_TNOIB_dX;
bool modelPar_given_TNOIB;
double modelPar_RNOIA;
double d_modelPar_RNOIA_dX;
bool modelPar_given_RNOIA;
double modelPar_RNOIB;
double d_modelPar_RNOIB_dX;
bool modelPar_given_RNOIB;
double modelPar_NTNOI;
double d_modelPar_NTNOI_dX;
bool modelPar_given_NTNOI;
double modelPar_SAREF;
double d_modelPar_SAREF_dX;
bool modelPar_given_SAREF;
double modelPar_SBREF;
double d_modelPar_SBREF_dX;
bool modelPar_given_SBREF;
double modelPar_WLOD;
double d_modelPar_WLOD_dX;
bool modelPar_given_WLOD;
double modelPar_KU0;
double d_modelPar_KU0_dX;
bool modelPar_given_KU0;
double modelPar_KVSAT;
double d_modelPar_KVSAT_dX;
bool modelPar_given_KVSAT;
double modelPar_KVTH0;
double d_modelPar_KVTH0_dX;
bool modelPar_given_KVTH0;
double modelPar_TKU0;
double d_modelPar_TKU0_dX;
bool modelPar_given_TKU0;
double modelPar_LLODKU0;
double d_modelPar_LLODKU0_dX;
bool modelPar_given_LLODKU0;
double modelPar_WLODKU0;
double d_modelPar_WLODKU0_dX;
bool modelPar_given_WLODKU0;
double modelPar_LLODVTH;
double d_modelPar_LLODVTH_dX;
bool modelPar_given_LLODVTH;
double modelPar_WLODVTH;
double d_modelPar_WLODVTH_dX;
bool modelPar_given_WLODVTH;
double modelPar_LKU0;
double d_modelPar_LKU0_dX;
bool modelPar_given_LKU0;
double modelPar_WKU0;
double d_modelPar_WKU0_dX;
bool modelPar_given_WKU0;
double modelPar_PKU0;
double d_modelPar_PKU0_dX;
bool modelPar_given_PKU0;
double modelPar_LKVTH0;
double d_modelPar_LKVTH0_dX;
bool modelPar_given_LKVTH0;
double modelPar_WKVTH0;
double d_modelPar_WKVTH0_dX;
bool modelPar_given_WKVTH0;
double modelPar_PKVTH0;
double d_modelPar_PKVTH0_dX;
bool modelPar_given_PKVTH0;
double modelPar_STK2;
double d_modelPar_STK2_dX;
bool modelPar_given_STK2;
double modelPar_LODK2;
double d_modelPar_LODK2_dX;
bool modelPar_given_LODK2;
double modelPar_STETA0;
double d_modelPar_STETA0_dX;
bool modelPar_given_STETA0;
double modelPar_LODETA0;
double d_modelPar_LODETA0_dX;
bool modelPar_given_LODETA0;
double modelPar_STETA0CV;
double d_modelPar_STETA0CV_dX;
bool modelPar_given_STETA0CV;
double modelPar_LODETA0CV;
double d_modelPar_LODETA0CV_dX;
bool modelPar_given_LODETA0CV;
double modelPar_GBMIN;
double d_modelPar_GBMIN_dX;
bool modelPar_given_GBMIN;
double modelPar_BF;
double d_modelPar_BF_dX;
bool modelPar_given_BF;
double modelPar_W0FLK;
double d_modelPar_W0FLK_dX;
bool modelPar_given_W0FLK;
double modelPar_DVTP0;
double d_modelPar_DVTP0_dX;
bool modelPar_given_DVTP0;
double modelPar_LDVTP0;
double d_modelPar_LDVTP0_dX;
bool modelPar_given_LDVTP0;
double modelPar_WDVTP0;
double d_modelPar_WDVTP0_dX;
bool modelPar_given_WDVTP0;
double modelPar_PDVTP0;
double d_modelPar_PDVTP0_dX;
bool modelPar_given_PDVTP0;
double modelPar_DVTP1;
double d_modelPar_DVTP1_dX;
bool modelPar_given_DVTP1;
double modelPar_LDVTP1;
double d_modelPar_LDVTP1_dX;
bool modelPar_given_LDVTP1;
double modelPar_WDVTP1;
double d_modelPar_WDVTP1_dX;
bool modelPar_given_WDVTP1;
double modelPar_PDVTP1;
double d_modelPar_PDVTP1_dX;
bool modelPar_given_PDVTP1;
double modelPar_DVTP2;
double d_modelPar_DVTP2_dX;
bool modelPar_given_DVTP2;
double modelPar_LDVTP2;
double d_modelPar_LDVTP2_dX;
bool modelPar_given_LDVTP2;
double modelPar_WDVTP2;
double d_modelPar_WDVTP2_dX;
bool modelPar_given_WDVTP2;
double modelPar_PDVTP2;
double d_modelPar_PDVTP2_dX;
bool modelPar_given_PDVTP2;
double modelPar_DVTP3;
double d_modelPar_DVTP3_dX;
bool modelPar_given_DVTP3;
double modelPar_LDVTP3;
double d_modelPar_LDVTP3_dX;
bool modelPar_given_LDVTP3;
double modelPar_WDVTP3;
double d_modelPar_WDVTP3_dX;
bool modelPar_given_WDVTP3;
double modelPar_PDVTP3;
double d_modelPar_PDVTP3_dX;
bool modelPar_given_PDVTP3;
double modelPar_DVTP4;
double d_modelPar_DVTP4_dX;
bool modelPar_given_DVTP4;
double modelPar_LDVTP4;
double d_modelPar_LDVTP4_dX;
bool modelPar_given_LDVTP4;
double modelPar_WDVTP4;
double d_modelPar_WDVTP4_dX;
bool modelPar_given_WDVTP4;
double modelPar_PDVTP4;
double d_modelPar_PDVTP4_dX;
bool modelPar_given_PDVTP4;
double modelPar_MINV;
double d_modelPar_MINV_dX;
bool modelPar_given_MINV;
double modelPar_LMINV;
double d_modelPar_LMINV_dX;
bool modelPar_given_LMINV;
double modelPar_WMINV;
double d_modelPar_WMINV_dX;
bool modelPar_given_WMINV;
double modelPar_PMINV;
double d_modelPar_PMINV_dX;
bool modelPar_given_PMINV;
double modelPar_PDITS;
double d_modelPar_PDITS_dX;
bool modelPar_given_PDITS;
double modelPar_PDITSL;
double d_modelPar_PDITSL_dX;
bool modelPar_given_PDITSL;
double modelPar_PDITSD;
double d_modelPar_PDITSD_dX;
bool modelPar_given_PDITSD;
double modelPar_FPROUT;
double d_modelPar_FPROUT_dX;
bool modelPar_given_FPROUT;
double modelPar_LFPROUT;
double d_modelPar_LFPROUT_dX;
bool modelPar_given_LFPROUT;
double modelPar_LPDITS;
double d_modelPar_LPDITS_dX;
bool modelPar_given_LPDITS;
double modelPar_LPDITSD;
double d_modelPar_LPDITSD_dX;
bool modelPar_given_LPDITSD;
double modelPar_WFPROUT;
double d_modelPar_WFPROUT_dX;
bool modelPar_given_WFPROUT;
double modelPar_WPDITS;
double d_modelPar_WPDITS_dX;
bool modelPar_given_WPDITS;
double modelPar_WPDITSD;
double d_modelPar_WPDITSD_dX;
bool modelPar_given_WPDITSD;
double modelPar_PFPROUT;
double d_modelPar_PFPROUT_dX;
bool modelPar_given_PFPROUT;
double modelPar_PPDITS;
double d_modelPar_PPDITS_dX;
bool modelPar_given_PPDITS;
double modelPar_PPDITSD;
double d_modelPar_PPDITSD_dX;
bool modelPar_given_PPDITSD;
double modelPar_EM;
double d_modelPar_EM_dX;
bool modelPar_given_EM;
double modelPar_EF;
double d_modelPar_EF_dX;
bool modelPar_given_EF;
double modelPar_AF;
double d_modelPar_AF_dX;
bool modelPar_given_AF;
double modelPar_KF;
double d_modelPar_KF_dX;
bool modelPar_given_KF;
double modelPar_NOIF;
double d_modelPar_NOIF_dX;
bool modelPar_given_NOIF;
double modelPar_K1W1;
double d_modelPar_K1W1_dX;
bool modelPar_given_K1W1;
double modelPar_K1W2;
double d_modelPar_K1W2_dX;
bool modelPar_given_K1W2;
double modelPar_KETAS;
double d_modelPar_KETAS_dX;
bool modelPar_given_KETAS;
double modelPar_DWBC;
double d_modelPar_DWBC_dX;
bool modelPar_given_DWBC;
double modelPar_BETA0;
double d_modelPar_BETA0_dX;
bool modelPar_given_BETA0;
double modelPar_BETA1;
double d_modelPar_BETA1_dX;
bool modelPar_given_BETA1;
double modelPar_BETA2;
double d_modelPar_BETA2_dX;
bool modelPar_given_BETA2;
double modelPar_VDSATII0;
double d_modelPar_VDSATII0_dX;
bool modelPar_given_VDSATII0;
double modelPar_TII;
double d_modelPar_TII_dX;
bool modelPar_given_TII;
double modelPar_LII;
double d_modelPar_LII_dX;
bool modelPar_given_LII;
double modelPar_SII0;
double d_modelPar_SII0_dX;
bool modelPar_given_SII0;
double modelPar_SII1;
double d_modelPar_SII1_dX;
bool modelPar_given_SII1;
double modelPar_SII2;
double d_modelPar_SII2_dX;
bool modelPar_given_SII2;
double modelPar_SIID;
double d_modelPar_SIID_dX;
bool modelPar_given_SIID;
double modelPar_FBJTII;
double d_modelPar_FBJTII_dX;
bool modelPar_given_FBJTII;
double modelPar_EBJTII;
double d_modelPar_EBJTII_dX;
bool modelPar_given_EBJTII;
double modelPar_CBJTII;
double d_modelPar_CBJTII_dX;
bool modelPar_given_CBJTII;
double modelPar_VBCI;
double d_modelPar_VBCI_dX;
bool modelPar_given_VBCI;
double modelPar_ABJTII;
double d_modelPar_ABJTII_dX;
bool modelPar_given_ABJTII;
double modelPar_MBJTII;
double d_modelPar_MBJTII_dX;
bool modelPar_given_MBJTII;
double modelPar_TVBCI;
double d_modelPar_TVBCI_dX;
bool modelPar_given_TVBCI;
double modelPar_ESATII;
double d_modelPar_ESATII_dX;
bool modelPar_given_ESATII;
double modelPar_NTUN;
double d_modelPar_NTUN_dX;
bool modelPar_given_NTUN;
double modelPar_NTUND;
double d_modelPar_NTUND_dX;
bool modelPar_given_NTUND;
double modelPar_NRECF0;
double d_modelPar_NRECF0_dX;
bool modelPar_given_NRECF0;
double modelPar_NRECF0D;
double d_modelPar_NRECF0D_dX;
bool modelPar_given_NRECF0D;
double modelPar_NRECR0;
double d_modelPar_NRECR0_dX;
bool modelPar_given_NRECR0;
double modelPar_NRECR0D;
double d_modelPar_NRECR0D_dX;
bool modelPar_given_NRECR0D;
double modelPar_ISBJT;
double d_modelPar_ISBJT_dX;
bool modelPar_given_ISBJT;
double modelPar_IDBJT;
double d_modelPar_IDBJT_dX;
bool modelPar_given_IDBJT;
double modelPar_ISDIF;
double d_modelPar_ISDIF_dX;
bool modelPar_given_ISDIF;
double modelPar_IDDIF;
double d_modelPar_IDDIF_dX;
bool modelPar_given_IDDIF;
double modelPar_ISREC;
double d_modelPar_ISREC_dX;
bool modelPar_given_ISREC;
double modelPar_IDREC;
double d_modelPar_IDREC_dX;
bool modelPar_given_IDREC;
double modelPar_ISTUN;
double d_modelPar_ISTUN_dX;
bool modelPar_given_ISTUN;
double modelPar_IDTUN;
double d_modelPar_IDTUN_dX;
bool modelPar_given_IDTUN;
double modelPar_LN;
double d_modelPar_LN_dX;
bool modelPar_given_LN;
double modelPar_VREC0;
double d_modelPar_VREC0_dX;
bool modelPar_given_VREC0;
double modelPar_VREC0D;
double d_modelPar_VREC0D_dX;
bool modelPar_given_VREC0D;
double modelPar_VTUN0;
double d_modelPar_VTUN0_dX;
bool modelPar_given_VTUN0;
double modelPar_VTUN0D;
double d_modelPar_VTUN0D_dX;
bool modelPar_given_VTUN0D;
double modelPar_NBJT;
double d_modelPar_NBJT_dX;
bool modelPar_given_NBJT;
double modelPar_LBJT0;
double d_modelPar_LBJT0_dX;
bool modelPar_given_LBJT0;
double modelPar_LDIF0;
double d_modelPar_LDIF0_dX;
bool modelPar_given_LDIF0;
double modelPar_VABJT;
double d_modelPar_VABJT_dX;
bool modelPar_given_VABJT;
double modelPar_AELY;
double d_modelPar_AELY_dX;
bool modelPar_given_AELY;
double modelPar_AHLI;
double d_modelPar_AHLI_dX;
bool modelPar_given_AHLI;
double modelPar_AHLID;
double d_modelPar_AHLID_dX;
bool modelPar_given_AHLID;
double modelPar_RBODY;
double d_modelPar_RBODY_dX;
bool modelPar_given_RBODY;
double modelPar_RBSH;
double d_modelPar_RBSH_dX;
bool modelPar_given_RBSH;
double modelPar_CGEO;
double d_modelPar_CGEO_dX;
bool modelPar_given_CGEO;
double modelPar_TT;
double d_modelPar_TT_dX;
bool modelPar_given_TT;
double modelPar_NDIF;
double d_modelPar_NDIF_dX;
bool modelPar_given_NDIF;
double modelPar_VSDFB;
double d_modelPar_VSDFB_dX;
bool modelPar_given_VSDFB;
double modelPar_VSDTH;
double d_modelPar_VSDTH_dX;
bool modelPar_given_VSDTH;
double modelPar_CSDMIN;
double d_modelPar_CSDMIN_dX;
bool modelPar_given_CSDMIN;
double modelPar_ASD;
double d_modelPar_ASD_dX;
bool modelPar_given_ASD;
double modelPar_CSDESW;
double d_modelPar_CSDESW_dX;
bool modelPar_given_CSDESW;
double modelPar_NTRECF;
double d_modelPar_NTRECF_dX;
bool modelPar_given_NTRECF;
double modelPar_NTRECR;
double d_modelPar_NTRECR_dX;
bool modelPar_given_NTRECR;
double modelPar_DLCB;
double d_modelPar_DLCB_dX;
bool modelPar_given_DLCB;
double modelPar_FBODY;
double d_modelPar_FBODY_dX;
bool modelPar_given_FBODY;
double modelPar_TCJSWG;
double d_modelPar_TCJSWG_dX;
bool modelPar_given_TCJSWG;
double modelPar_TPBSWG;
double d_modelPar_TPBSWG_dX;
bool modelPar_given_TPBSWG;
double modelPar_TCJSWGD;
double d_modelPar_TCJSWGD_dX;
bool modelPar_given_TCJSWGD;
double modelPar_TPBSWGD;
double d_modelPar_TPBSWGD_dX;
bool modelPar_given_TPBSWGD;
double modelPar_ACDE;
double d_modelPar_ACDE_dX;
bool modelPar_given_ACDE;
double modelPar_MOIN;
double d_modelPar_MOIN_dX;
bool modelPar_given_MOIN;
double modelPar_NOFF;
double d_modelPar_NOFF_dX;
bool modelPar_given_NOFF;
double modelPar_DELVT;
double d_modelPar_DELVT_dX;
bool modelPar_given_DELVT;
double modelPar_KB1;
double d_modelPar_KB1_dX;
bool modelPar_given_KB1;
double modelPar_DLBG;
double d_modelPar_DLBG_dX;
bool modelPar_given_DLBG;
double modelPar_CFRCOEFF;
double d_modelPar_CFRCOEFF_dX;
bool modelPar_given_CFRCOEFF;
double modelPar_TOXQM;
double d_modelPar_TOXQM_dX;
bool modelPar_given_TOXQM;
double modelPar_WTH0;
double d_modelPar_WTH0_dX;
bool modelPar_given_WTH0;
double modelPar_RHALO;
double d_modelPar_RHALO_dX;
bool modelPar_given_RHALO;
double modelPar_NTOX;
double d_modelPar_NTOX_dX;
bool modelPar_given_NTOX;
double modelPar_TOXREF;
double d_modelPar_TOXREF_dX;
bool modelPar_given_TOXREF;
double modelPar_EBG;
double d_modelPar_EBG_dX;
bool modelPar_given_EBG;
double modelPar_VEVB;
double d_modelPar_VEVB_dX;
bool modelPar_given_VEVB;
double modelPar_ALPHAGB1;
double d_modelPar_ALPHAGB1_dX;
bool modelPar_given_ALPHAGB1;
double modelPar_BETAGB1;
double d_modelPar_BETAGB1_dX;
bool modelPar_given_BETAGB1;
double modelPar_VGB1;
double d_modelPar_VGB1_dX;
bool modelPar_given_VGB1;
double modelPar_VECB;
double d_modelPar_VECB_dX;
bool modelPar_given_VECB;
double modelPar_ALPHAGB2;
double d_modelPar_ALPHAGB2_dX;
bool modelPar_given_ALPHAGB2;
double modelPar_BETAGB2;
double d_modelPar_BETAGB2_dX;
bool modelPar_given_BETAGB2;
double modelPar_VGB2;
double d_modelPar_VGB2_dX;
bool modelPar_given_VGB2;
double modelPar_AIGBCP2;
double d_modelPar_AIGBCP2_dX;
bool modelPar_given_AIGBCP2;
double modelPar_BIGBCP2;
double d_modelPar_BIGBCP2_dX;
bool modelPar_given_BIGBCP2;
double modelPar_CIGBCP2;
double d_modelPar_CIGBCP2_dX;
bool modelPar_given_CIGBCP2;
double modelPar_VOXH;
double d_modelPar_VOXH_dX;
bool modelPar_given_VOXH;
double modelPar_DELTAVOX;
double d_modelPar_DELTAVOX_dX;
bool modelPar_given_DELTAVOX;
double modelPar_AIGC;
double d_modelPar_AIGC_dX;
bool modelPar_given_AIGC;
double modelPar_BIGC;
double d_modelPar_BIGC_dX;
bool modelPar_given_BIGC;
double modelPar_CIGC;
double d_modelPar_CIGC_dX;
bool modelPar_given_CIGC;
double modelPar_AIGSD;
double d_modelPar_AIGSD_dX;
bool modelPar_given_AIGSD;
double modelPar_BIGSD;
double d_modelPar_BIGSD_dX;
bool modelPar_given_BIGSD;
double modelPar_CIGSD;
double d_modelPar_CIGSD_dX;
bool modelPar_given_CIGSD;
double modelPar_NIGC;
double d_modelPar_NIGC_dX;
bool modelPar_given_NIGC;
double modelPar_PIGCD;
double d_modelPar_PIGCD_dX;
bool modelPar_given_PIGCD;
double modelPar_POXEDGE;
double d_modelPar_POXEDGE_dX;
bool modelPar_given_POXEDGE;
double modelPar_DLCIG;
double d_modelPar_DLCIG_dX;
bool modelPar_given_DLCIG;
double modelPar_VBS0PD;
double d_modelPar_VBS0PD_dX;
bool modelPar_given_VBS0PD;
double modelPar_VBS0FD;
double d_modelPar_VBS0FD_dX;
bool modelPar_given_VBS0FD;
double modelPar_VBSA;
double d_modelPar_VBSA_dX;
bool modelPar_given_VBSA;
double modelPar_NOFFFD;
double d_modelPar_NOFFFD_dX;
bool modelPar_given_NOFFFD;
double modelPar_VOFFFD;
double d_modelPar_VOFFFD_dX;
bool modelPar_given_VOFFFD;
double modelPar_K1B;
double d_modelPar_K1B_dX;
bool modelPar_given_K1B;
double modelPar_K2B;
double d_modelPar_K2B_dX;
bool modelPar_given_K2B;
double modelPar_DK2B;
double d_modelPar_DK2B_dX;
bool modelPar_given_DK2B;
double modelPar_DVBD0;
double d_modelPar_DVBD0_dX;
bool modelPar_given_DVBD0;
double modelPar_DVBD1;
double d_modelPar_DVBD1_dX;
bool modelPar_given_DVBD1;
double modelPar_MOINFD;
double d_modelPar_MOINFD_dX;
bool modelPar_given_MOINFD;
double modelPar_XRCRG1;
double d_modelPar_XRCRG1_dX;
bool modelPar_given_XRCRG1;
double modelPar_XRCRG2;
double d_modelPar_XRCRG2_dX;
bool modelPar_given_XRCRG2;
double modelPar_RSHG;
double d_modelPar_RSHG_dX;
bool modelPar_given_RSHG;
double modelPar_NGCON;
double d_modelPar_NGCON_dX;
bool modelPar_given_NGCON;
double modelPar_XGW;
double d_modelPar_XGW_dX;
bool modelPar_given_XGW;
double modelPar_XGL;
double d_modelPar_XGL_dX;
bool modelPar_given_XGL;
double modelPar_VSCE;
double d_modelPar_VSCE_dX;
bool modelPar_given_VSCE;
double modelPar_CDSBS;
double d_modelPar_CDSBS_dX;
bool modelPar_given_CDSBS;
double modelPar_MINVCV;
double d_modelPar_MINVCV_dX;
bool modelPar_given_MINVCV;
double modelPar_LMINVCV;
double d_modelPar_LMINVCV_dX;
bool modelPar_given_LMINVCV;
double modelPar_WMINVCV;
double d_modelPar_WMINVCV_dX;
bool modelPar_given_WMINVCV;
double modelPar_PMINVCV;
double d_modelPar_PMINVCV_dX;
bool modelPar_given_PMINVCV;
double modelPar_VOFFCV;
double d_modelPar_VOFFCV_dX;
bool modelPar_given_VOFFCV;
double modelPar_LVOFFCV;
double d_modelPar_LVOFFCV_dX;
bool modelPar_given_LVOFFCV;
double modelPar_WVOFFCV;
double d_modelPar_WVOFFCV_dX;
bool modelPar_given_WVOFFCV;
double modelPar_PVOFFCV;
double d_modelPar_PVOFFCV_dX;
bool modelPar_given_PVOFFCV;
double modelPar_LXJ;
double d_modelPar_LXJ_dX;
bool modelPar_given_LXJ;
double modelPar_LALPHAGB1;
double d_modelPar_LALPHAGB1_dX;
bool modelPar_given_LALPHAGB1;
double modelPar_LBETAGB1;
double d_modelPar_LBETAGB1_dX;
bool modelPar_given_LBETAGB1;
double modelPar_LALPHAGB2;
double d_modelPar_LALPHAGB2_dX;
bool modelPar_given_LALPHAGB2;
double modelPar_LBETAGB2;
double d_modelPar_LBETAGB2_dX;
bool modelPar_given_LBETAGB2;
double modelPar_LAIGBCP2;
double d_modelPar_LAIGBCP2_dX;
bool modelPar_given_LAIGBCP2;
double modelPar_LBIGBCP2;
double d_modelPar_LBIGBCP2_dX;
bool modelPar_given_LBIGBCP2;
double modelPar_LCIGBCP2;
double d_modelPar_LCIGBCP2_dX;
bool modelPar_given_LCIGBCP2;
double modelPar_LCGSL;
double d_modelPar_LCGSL_dX;
bool modelPar_given_LCGSL;
double modelPar_LCGDL;
double d_modelPar_LCGDL_dX;
bool modelPar_given_LCGDL;
double modelPar_LCKAPPA;
double d_modelPar_LCKAPPA_dX;
bool modelPar_given_LCKAPPA;
double modelPar_LNDIF;
double d_modelPar_LNDIF_dX;
bool modelPar_given_LNDIF;
double modelPar_LUTE;
double d_modelPar_LUTE_dX;
bool modelPar_given_LUTE;
double modelPar_LKT1;
double d_modelPar_LKT1_dX;
bool modelPar_given_LKT1;
double modelPar_LKT1L;
double d_modelPar_LKT1L_dX;
bool modelPar_given_LKT1L;
double modelPar_LKT2;
double d_modelPar_LKT2_dX;
bool modelPar_given_LKT2;
double modelPar_LUA1;
double d_modelPar_LUA1_dX;
bool modelPar_given_LUA1;
double modelPar_LUB1;
double d_modelPar_LUB1_dX;
bool modelPar_given_LUB1;
double modelPar_LUC1;
double d_modelPar_LUC1_dX;
bool modelPar_given_LUC1;
double modelPar_LAT;
double d_modelPar_LAT_dX;
bool modelPar_given_LAT;
double modelPar_LPRT;
double d_modelPar_LPRT_dX;
bool modelPar_given_LPRT;
double modelPar_LNTRECF;
double d_modelPar_LNTRECF_dX;
bool modelPar_given_LNTRECF;
double modelPar_LNTRECR;
double d_modelPar_LNTRECR_dX;
bool modelPar_given_LNTRECR;
double modelPar_LXBJT;
double d_modelPar_LXBJT_dX;
bool modelPar_given_LXBJT;
double modelPar_LXDIF;
double d_modelPar_LXDIF_dX;
bool modelPar_given_LXDIF;
double modelPar_LXREC;
double d_modelPar_LXREC_dX;
bool modelPar_given_LXREC;
double modelPar_LXTUN;
double d_modelPar_LXTUN_dX;
bool modelPar_given_LXTUN;
double modelPar_LXDIFD;
double d_modelPar_LXDIFD_dX;
bool modelPar_given_LXDIFD;
double modelPar_LXRECD;
double d_modelPar_LXRECD_dX;
bool modelPar_given_LXRECD;
double modelPar_LXTUND;
double d_modelPar_LXTUND_dX;
bool modelPar_given_LXTUND;
double modelPar_LAIGC;
double d_modelPar_LAIGC_dX;
bool modelPar_given_LAIGC;
double modelPar_LBIGC;
double d_modelPar_LBIGC_dX;
bool modelPar_given_LBIGC;
double modelPar_LCIGC;
double d_modelPar_LCIGC_dX;
bool modelPar_given_LCIGC;
double modelPar_LAIGSD;
double d_modelPar_LAIGSD_dX;
bool modelPar_given_LAIGSD;
double modelPar_LBIGSD;
double d_modelPar_LBIGSD_dX;
bool modelPar_given_LBIGSD;
double modelPar_LCIGSD;
double d_modelPar_LCIGSD_dX;
bool modelPar_given_LCIGSD;
double modelPar_LNIGC;
double d_modelPar_LNIGC_dX;
bool modelPar_given_LNIGC;
double modelPar_LPIGCD;
double d_modelPar_LPIGCD_dX;
bool modelPar_given_LPIGCD;
double modelPar_LPOXEDGE;
double d_modelPar_LPOXEDGE_dX;
bool modelPar_given_LPOXEDGE;
double modelPar_LNCH;
double d_modelPar_LNCH_dX;
bool modelPar_given_LNCH;
double modelPar_LNSUB;
double d_modelPar_LNSUB_dX;
bool modelPar_given_LNSUB;
double modelPar_LNGATE;
double d_modelPar_LNGATE_dX;
bool modelPar_given_LNGATE;
double modelPar_LNSD;
double d_modelPar_LNSD_dX;
bool modelPar_given_LNSD;
double modelPar_LVTH0;
double d_modelPar_LVTH0_dX;
bool modelPar_given_LVTH0;
double modelPar_LVFB;
double d_modelPar_LVFB_dX;
bool modelPar_given_LVFB;
double modelPar_LK1;
double d_modelPar_LK1_dX;
bool modelPar_given_LK1;
double modelPar_LK1W1;
double d_modelPar_LK1W1_dX;
bool modelPar_given_LK1W1;
double modelPar_LK1W2;
double d_modelPar_LK1W2_dX;
bool modelPar_given_LK1W2;
double modelPar_LK2;
double d_modelPar_LK2_dX;
bool modelPar_given_LK2;
double modelPar_LK3;
double d_modelPar_LK3_dX;
bool modelPar_given_LK3;
double modelPar_LK3B;
double d_modelPar_LK3B_dX;
bool modelPar_given_LK3B;
double modelPar_LKB1;
double d_modelPar_LKB1_dX;
bool modelPar_given_LKB1;
double modelPar_LW0;
double d_modelPar_LW0_dX;
bool modelPar_given_LW0;
double modelPar_LLPEB;
double d_modelPar_LLPEB_dX;
bool modelPar_given_LLPEB;
double modelPar_LDVT0;
double d_modelPar_LDVT0_dX;
bool modelPar_given_LDVT0;
double modelPar_LDVT1;
double d_modelPar_LDVT1_dX;
bool modelPar_given_LDVT1;
double modelPar_LDVT2;
double d_modelPar_LDVT2_dX;
bool modelPar_given_LDVT2;
double modelPar_LDVT0W;
double d_modelPar_LDVT0W_dX;
bool modelPar_given_LDVT0W;
double modelPar_LDVT1W;
double d_modelPar_LDVT1W_dX;
bool modelPar_given_LDVT1W;
double modelPar_LDVT2W;
double d_modelPar_LDVT2W_dX;
bool modelPar_given_LDVT2W;
double modelPar_LU0;
double d_modelPar_LU0_dX;
bool modelPar_given_LU0;
double modelPar_LEU;
double d_modelPar_LEU_dX;
bool modelPar_given_LEU;
double modelPar_LUA;
double d_modelPar_LUA_dX;
bool modelPar_given_LUA;
double modelPar_LUB;
double d_modelPar_LUB_dX;
bool modelPar_given_LUB;
double modelPar_LUC;
double d_modelPar_LUC_dX;
bool modelPar_given_LUC;
double modelPar_LUD;
double d_modelPar_LUD_dX;
bool modelPar_given_LUD;
double modelPar_LUD1;
double d_modelPar_LUD1_dX;
bool modelPar_given_LUD1;
double modelPar_LUCSTE;
double d_modelPar_LUCSTE_dX;
bool modelPar_given_LUCSTE;
double modelPar_LUCS;
double d_modelPar_LUCS_dX;
bool modelPar_given_LUCS;
double modelPar_LVSAT;
double d_modelPar_LVSAT_dX;
bool modelPar_given_LVSAT;
double modelPar_LA0;
double d_modelPar_LA0_dX;
bool modelPar_given_LA0;
double modelPar_LAGS;
double d_modelPar_LAGS_dX;
bool modelPar_given_LAGS;
double modelPar_LB0;
double d_modelPar_LB0_dX;
bool modelPar_given_LB0;
double modelPar_LB1;
double d_modelPar_LB1_dX;
bool modelPar_given_LB1;
double modelPar_LKETA;
double d_modelPar_LKETA_dX;
bool modelPar_given_LKETA;
double modelPar_LKETAS;
double d_modelPar_LKETAS_dX;
bool modelPar_given_LKETAS;
double modelPar_LA1;
double d_modelPar_LA1_dX;
bool modelPar_given_LA1;
double modelPar_LA2;
double d_modelPar_LA2_dX;
bool modelPar_given_LA2;
double modelPar_LRDSW;
double d_modelPar_LRDSW_dX;
bool modelPar_given_LRDSW;
double modelPar_LRSW;
double d_modelPar_LRSW_dX;
bool modelPar_given_LRSW;
double modelPar_LRDW;
double d_modelPar_LRDW_dX;
bool modelPar_given_LRDW;
double modelPar_LPRWB;
double d_modelPar_LPRWB_dX;
bool modelPar_given_LPRWB;
double modelPar_LPRWG;
double d_modelPar_LPRWG_dX;
bool modelPar_given_LPRWG;
double modelPar_LWR;
double d_modelPar_LWR_dX;
bool modelPar_given_LWR;
double modelPar_LNFACTOR;
double d_modelPar_LNFACTOR_dX;
bool modelPar_given_LNFACTOR;
double modelPar_LDWG;
double d_modelPar_LDWG_dX;
bool modelPar_given_LDWG;
double modelPar_LDWB;
double d_modelPar_LDWB_dX;
bool modelPar_given_LDWB;
double modelPar_LVOFF;
double d_modelPar_LVOFF_dX;
bool modelPar_given_LVOFF;
double modelPar_LETA0;
double d_modelPar_LETA0_dX;
bool modelPar_given_LETA0;
double modelPar_LETAB;
double d_modelPar_LETAB_dX;
bool modelPar_given_LETAB;
double modelPar_LETA0CV;
double d_modelPar_LETA0CV_dX;
bool modelPar_given_LETA0CV;
double modelPar_LETABCV;
double d_modelPar_LETABCV_dX;
bool modelPar_given_LETABCV;
double modelPar_LDSUB;
double d_modelPar_LDSUB_dX;
bool modelPar_given_LDSUB;
double modelPar_LCIT;
double d_modelPar_LCIT_dX;
bool modelPar_given_LCIT;
double modelPar_LCDSC;
double d_modelPar_LCDSC_dX;
bool modelPar_given_LCDSC;
double modelPar_LCDSCB;
double d_modelPar_LCDSCB_dX;
bool modelPar_given_LCDSCB;
double modelPar_LCDSCD;
double d_modelPar_LCDSCD_dX;
bool modelPar_given_LCDSCD;
double modelPar_LPCLM;
double d_modelPar_LPCLM_dX;
bool modelPar_given_LPCLM;
double modelPar_LPDIBLC1;
double d_modelPar_LPDIBLC1_dX;
bool modelPar_given_LPDIBLC1;
double modelPar_LPDIBLC2;
double d_modelPar_LPDIBLC2_dX;
bool modelPar_given_LPDIBLC2;
double modelPar_LPDIBLCB;
double d_modelPar_LPDIBLCB_dX;
bool modelPar_given_LPDIBLCB;
double modelPar_LDROUT;
double d_modelPar_LDROUT_dX;
bool modelPar_given_LDROUT;
double modelPar_LPVAG;
double d_modelPar_LPVAG_dX;
bool modelPar_given_LPVAG;
double modelPar_LDELTA;
double d_modelPar_LDELTA_dX;
bool modelPar_given_LDELTA;
double modelPar_LALPHA0;
double d_modelPar_LALPHA0_dX;
bool modelPar_given_LALPHA0;
double modelPar_LFBJTII;
double d_modelPar_LFBJTII_dX;
bool modelPar_given_LFBJTII;
double modelPar_LABJTII;
double d_modelPar_LABJTII_dX;
bool modelPar_given_LABJTII;
double modelPar_LCBJTII;
double d_modelPar_LCBJTII_dX;
bool modelPar_given_LCBJTII;
double modelPar_LEBJTII;
double d_modelPar_LEBJTII_dX;
bool modelPar_given_LEBJTII;
double modelPar_LMBJTII;
double d_modelPar_LMBJTII_dX;
bool modelPar_given_LMBJTII;
double modelPar_LVBCI;
double d_modelPar_LVBCI_dX;
bool modelPar_given_LVBCI;
double modelPar_LBETA0;
double d_modelPar_LBETA0_dX;
bool modelPar_given_LBETA0;
double modelPar_LBETA1;
double d_modelPar_LBETA1_dX;
bool modelPar_given_LBETA1;
double modelPar_LBETA2;
double d_modelPar_LBETA2_dX;
bool modelPar_given_LBETA2;
double modelPar_LVDSATII0;
double d_modelPar_LVDSATII0_dX;
bool modelPar_given_LVDSATII0;
double modelPar_LLII;
double d_modelPar_LLII_dX;
bool modelPar_given_LLII;
double modelPar_LESATII;
double d_modelPar_LESATII_dX;
bool modelPar_given_LESATII;
double modelPar_LSII0;
double d_modelPar_LSII0_dX;
bool modelPar_given_LSII0;
double modelPar_LSII1;
double d_modelPar_LSII1_dX;
bool modelPar_given_LSII1;
double modelPar_LSII2;
double d_modelPar_LSII2_dX;
bool modelPar_given_LSII2;
double modelPar_LSIID;
double d_modelPar_LSIID_dX;
bool modelPar_given_LSIID;
double modelPar_LAGIDL;
double d_modelPar_LAGIDL_dX;
bool modelPar_given_LAGIDL;
double modelPar_LBGIDL;
double d_modelPar_LBGIDL_dX;
bool modelPar_given_LBGIDL;
double modelPar_LCGIDL;
double d_modelPar_LCGIDL_dX;
bool modelPar_given_LCGIDL;
double modelPar_LRGIDL;
double d_modelPar_LRGIDL_dX;
bool modelPar_given_LRGIDL;
double modelPar_LKGIDL;
double d_modelPar_LKGIDL_dX;
bool modelPar_given_LKGIDL;
double modelPar_LFGIDL;
double d_modelPar_LFGIDL_dX;
bool modelPar_given_LFGIDL;
double modelPar_LAGISL;
double d_modelPar_LAGISL_dX;
bool modelPar_given_LAGISL;
double modelPar_LBGISL;
double d_modelPar_LBGISL_dX;
bool modelPar_given_LBGISL;
double modelPar_LCGISL;
double d_modelPar_LCGISL_dX;
bool modelPar_given_LCGISL;
double modelPar_LRGISL;
double d_modelPar_LRGISL_dX;
bool modelPar_given_LRGISL;
double modelPar_LKGISL;
double d_modelPar_LKGISL_dX;
bool modelPar_given_LKGISL;
double modelPar_LFGISL;
double d_modelPar_LFGISL_dX;
bool modelPar_given_LFGISL;
double modelPar_LNTUN;
double d_modelPar_LNTUN_dX;
bool modelPar_given_LNTUN;
double modelPar_LNTUND;
double d_modelPar_LNTUND_dX;
bool modelPar_given_LNTUND;
double modelPar_LNDIODE;
double d_modelPar_LNDIODE_dX;
bool modelPar_given_LNDIODE;
double modelPar_LNDIODED;
double d_modelPar_LNDIODED_dX;
bool modelPar_given_LNDIODED;
double modelPar_LNRECF0;
double d_modelPar_LNRECF0_dX;
bool modelPar_given_LNRECF0;
double modelPar_LNRECF0D;
double d_modelPar_LNRECF0D_dX;
bool modelPar_given_LNRECF0D;
double modelPar_LNRECR0;
double d_modelPar_LNRECR0_dX;
bool modelPar_given_LNRECR0;
double modelPar_LNRECR0D;
double d_modelPar_LNRECR0D_dX;
bool modelPar_given_LNRECR0D;
double modelPar_LISBJT;
double d_modelPar_LISBJT_dX;
bool modelPar_given_LISBJT;
double modelPar_LIDBJT;
double d_modelPar_LIDBJT_dX;
bool modelPar_given_LIDBJT;
double modelPar_LISDIF;
double d_modelPar_LISDIF_dX;
bool modelPar_given_LISDIF;
double modelPar_LIDDIF;
double d_modelPar_LIDDIF_dX;
bool modelPar_given_LIDDIF;
double modelPar_LISREC;
double d_modelPar_LISREC_dX;
bool modelPar_given_LISREC;
double modelPar_LIDREC;
double d_modelPar_LIDREC_dX;
bool modelPar_given_LIDREC;
double modelPar_LISTUN;
double d_modelPar_LISTUN_dX;
bool modelPar_given_LISTUN;
double modelPar_LIDTUN;
double d_modelPar_LIDTUN_dX;
bool modelPar_given_LIDTUN;
double modelPar_LVREC0;
double d_modelPar_LVREC0_dX;
bool modelPar_given_LVREC0;
double modelPar_LVREC0D;
double d_modelPar_LVREC0D_dX;
bool modelPar_given_LVREC0D;
double modelPar_LVTUN0;
double d_modelPar_LVTUN0_dX;
bool modelPar_given_LVTUN0;
double modelPar_LVTUN0D;
double d_modelPar_LVTUN0D_dX;
bool modelPar_given_LVTUN0D;
double modelPar_LNBJT;
double d_modelPar_LNBJT_dX;
bool modelPar_given_LNBJT;
double modelPar_LLBJT0;
double d_modelPar_LLBJT0_dX;
bool modelPar_given_LLBJT0;
double modelPar_LVABJT;
double d_modelPar_LVABJT_dX;
bool modelPar_given_LVABJT;
double modelPar_LAELY;
double d_modelPar_LAELY_dX;
bool modelPar_given_LAELY;
double modelPar_LAHLI;
double d_modelPar_LAHLI_dX;
bool modelPar_given_LAHLI;
double modelPar_LAHLID;
double d_modelPar_LAHLID_dX;
bool modelPar_given_LAHLID;
double modelPar_LVSDFB;
double d_modelPar_LVSDFB_dX;
bool modelPar_given_LVSDFB;
double modelPar_LVSDTH;
double d_modelPar_LVSDTH_dX;
bool modelPar_given_LVSDTH;
double modelPar_LDELVT;
double d_modelPar_LDELVT_dX;
bool modelPar_given_LDELVT;
double modelPar_LACDE;
double d_modelPar_LACDE_dX;
bool modelPar_given_LACDE;
double modelPar_LMOIN;
double d_modelPar_LMOIN_dX;
bool modelPar_given_LMOIN;
double modelPar_LNOFF;
double d_modelPar_LNOFF_dX;
bool modelPar_given_LNOFF;
double modelPar_LXRCRG1;
double d_modelPar_LXRCRG1_dX;
bool modelPar_given_LXRCRG1;
double modelPar_LXRCRG2;
double d_modelPar_LXRCRG2_dX;
bool modelPar_given_LXRCRG2;
double modelPar_WXJ;
double d_modelPar_WXJ_dX;
bool modelPar_given_WXJ;
double modelPar_WALPHAGB1;
double d_modelPar_WALPHAGB1_dX;
bool modelPar_given_WALPHAGB1;
double modelPar_WBETAGB1;
double d_modelPar_WBETAGB1_dX;
bool modelPar_given_WBETAGB1;
double modelPar_WALPHAGB2;
double d_modelPar_WALPHAGB2_dX;
bool modelPar_given_WALPHAGB2;
double modelPar_WBETAGB2;
double d_modelPar_WBETAGB2_dX;
bool modelPar_given_WBETAGB2;
double modelPar_WAIGBCP2;
double d_modelPar_WAIGBCP2_dX;
bool modelPar_given_WAIGBCP2;
double modelPar_WBIGBCP2;
double d_modelPar_WBIGBCP2_dX;
bool modelPar_given_WBIGBCP2;
double modelPar_WCIGBCP2;
double d_modelPar_WCIGBCP2_dX;
bool modelPar_given_WCIGBCP2;
double modelPar_WCGSL;
double d_modelPar_WCGSL_dX;
bool modelPar_given_WCGSL;
double modelPar_WCGDL;
double d_modelPar_WCGDL_dX;
bool modelPar_given_WCGDL;
double modelPar_WCKAPPA;
double d_modelPar_WCKAPPA_dX;
bool modelPar_given_WCKAPPA;
double modelPar_WNDIF;
double d_modelPar_WNDIF_dX;
bool modelPar_given_WNDIF;
double modelPar_WUTE;
double d_modelPar_WUTE_dX;
bool modelPar_given_WUTE;
double modelPar_WKT1;
double d_modelPar_WKT1_dX;
bool modelPar_given_WKT1;
double modelPar_WKT1L;
double d_modelPar_WKT1L_dX;
bool modelPar_given_WKT1L;
double modelPar_WKT2;
double d_modelPar_WKT2_dX;
bool modelPar_given_WKT2;
double modelPar_WUA1;
double d_modelPar_WUA1_dX;
bool modelPar_given_WUA1;
double modelPar_WUB1;
double d_modelPar_WUB1_dX;
bool modelPar_given_WUB1;
double modelPar_WUC1;
double d_modelPar_WUC1_dX;
bool modelPar_given_WUC1;
double modelPar_WAT;
double d_modelPar_WAT_dX;
bool modelPar_given_WAT;
double modelPar_WPRT;
double d_modelPar_WPRT_dX;
bool modelPar_given_WPRT;
double modelPar_WNTRECF;
double d_modelPar_WNTRECF_dX;
bool modelPar_given_WNTRECF;
double modelPar_WNTRECR;
double d_modelPar_WNTRECR_dX;
bool modelPar_given_WNTRECR;
double modelPar_WXBJT;
double d_modelPar_WXBJT_dX;
bool modelPar_given_WXBJT;
double modelPar_WXDIF;
double d_modelPar_WXDIF_dX;
bool modelPar_given_WXDIF;
double modelPar_WXREC;
double d_modelPar_WXREC_dX;
bool modelPar_given_WXREC;
double modelPar_WXTUN;
double d_modelPar_WXTUN_dX;
bool modelPar_given_WXTUN;
double modelPar_WXDIFD;
double d_modelPar_WXDIFD_dX;
bool modelPar_given_WXDIFD;
double modelPar_WXRECD;
double d_modelPar_WXRECD_dX;
bool modelPar_given_WXRECD;
double modelPar_WXTUND;
double d_modelPar_WXTUND_dX;
bool modelPar_given_WXTUND;
double modelPar_WAIGC;
double d_modelPar_WAIGC_dX;
bool modelPar_given_WAIGC;
double modelPar_WBIGC;
double d_modelPar_WBIGC_dX;
bool modelPar_given_WBIGC;
double modelPar_WCIGC;
double d_modelPar_WCIGC_dX;
bool modelPar_given_WCIGC;
double modelPar_WAIGSD;
double d_modelPar_WAIGSD_dX;
bool modelPar_given_WAIGSD;
double modelPar_WBIGSD;
double d_modelPar_WBIGSD_dX;
bool modelPar_given_WBIGSD;
double modelPar_WCIGSD;
double d_modelPar_WCIGSD_dX;
bool modelPar_given_WCIGSD;
double modelPar_WNIGC;
double d_modelPar_WNIGC_dX;
bool modelPar_given_WNIGC;
double modelPar_WPIGCD;
double d_modelPar_WPIGCD_dX;
bool modelPar_given_WPIGCD;
double modelPar_WPOXEDGE;
double d_modelPar_WPOXEDGE_dX;
bool modelPar_given_WPOXEDGE;
double modelPar_WNCH;
double d_modelPar_WNCH_dX;
bool modelPar_given_WNCH;
double modelPar_WNSUB;
double d_modelPar_WNSUB_dX;
bool modelPar_given_WNSUB;
double modelPar_WNGATE;
double d_modelPar_WNGATE_dX;
bool modelPar_given_WNGATE;
double modelPar_WNSD;
double d_modelPar_WNSD_dX;
bool modelPar_given_WNSD;
double modelPar_WVTH0;
double d_modelPar_WVTH0_dX;
bool modelPar_given_WVTH0;
double modelPar_WVFB;
double d_modelPar_WVFB_dX;
bool modelPar_given_WVFB;
double modelPar_WK1;
double d_modelPar_WK1_dX;
bool modelPar_given_WK1;
double modelPar_WK1W1;
double d_modelPar_WK1W1_dX;
bool modelPar_given_WK1W1;
double modelPar_WK1W2;
double d_modelPar_WK1W2_dX;
bool modelPar_given_WK1W2;
double modelPar_WK2;
double d_modelPar_WK2_dX;
bool modelPar_given_WK2;
double modelPar_WK3;
double d_modelPar_WK3_dX;
bool modelPar_given_WK3;
double modelPar_WK3B;
double d_modelPar_WK3B_dX;
bool modelPar_given_WK3B;
double modelPar_WKB1;
double d_modelPar_WKB1_dX;
bool modelPar_given_WKB1;
double modelPar_WW0;
double d_modelPar_WW0_dX;
bool modelPar_given_WW0;
double modelPar_WLPEB;
double d_modelPar_WLPEB_dX;
bool modelPar_given_WLPEB;
double modelPar_WDVT0;
double d_modelPar_WDVT0_dX;
bool modelPar_given_WDVT0;
double modelPar_WDVT1;
double d_modelPar_WDVT1_dX;
bool modelPar_given_WDVT1;
double modelPar_WDVT2;
double d_modelPar_WDVT2_dX;
bool modelPar_given_WDVT2;
double modelPar_WDVT0W;
double d_modelPar_WDVT0W_dX;
bool modelPar_given_WDVT0W;
double modelPar_WDVT1W;
double d_modelPar_WDVT1W_dX;
bool modelPar_given_WDVT1W;
double modelPar_WDVT2W;
double d_modelPar_WDVT2W_dX;
bool modelPar_given_WDVT2W;
double modelPar_WU0;
double d_modelPar_WU0_dX;
bool modelPar_given_WU0;
double modelPar_WEU;
double d_modelPar_WEU_dX;
bool modelPar_given_WEU;
double modelPar_WUA;
double d_modelPar_WUA_dX;
bool modelPar_given_WUA;
double modelPar_WUB;
double d_modelPar_WUB_dX;
bool modelPar_given_WUB;
double modelPar_WUC;
double d_modelPar_WUC_dX;
bool modelPar_given_WUC;
double modelPar_WUD;
double d_modelPar_WUD_dX;
bool modelPar_given_WUD;
double modelPar_WUD1;
double d_modelPar_WUD1_dX;
bool modelPar_given_WUD1;
double modelPar_WUCSTE;
double d_modelPar_WUCSTE_dX;
bool modelPar_given_WUCSTE;
double modelPar_WUCS;
double d_modelPar_WUCS_dX;
bool modelPar_given_WUCS;
double modelPar_WVSAT;
double d_modelPar_WVSAT_dX;
bool modelPar_given_WVSAT;
double modelPar_WA0;
double d_modelPar_WA0_dX;
bool modelPar_given_WA0;
double modelPar_WAGS;
double d_modelPar_WAGS_dX;
bool modelPar_given_WAGS;
double modelPar_WB0;
double d_modelPar_WB0_dX;
bool modelPar_given_WB0;
double modelPar_WB1;
double d_modelPar_WB1_dX;
bool modelPar_given_WB1;
double modelPar_WKETA;
double d_modelPar_WKETA_dX;
bool modelPar_given_WKETA;
double modelPar_WKETAS;
double d_modelPar_WKETAS_dX;
bool modelPar_given_WKETAS;
double modelPar_WA1;
double d_modelPar_WA1_dX;
bool modelPar_given_WA1;
double modelPar_WA2;
double d_modelPar_WA2_dX;
bool modelPar_given_WA2;
double modelPar_WRDSW;
double d_modelPar_WRDSW_dX;
bool modelPar_given_WRDSW;
double modelPar_WRSW;
double d_modelPar_WRSW_dX;
bool modelPar_given_WRSW;
double modelPar_WRDW;
double d_modelPar_WRDW_dX;
bool modelPar_given_WRDW;
double modelPar_WPRWB;
double d_modelPar_WPRWB_dX;
bool modelPar_given_WPRWB;
double modelPar_WPRWG;
double d_modelPar_WPRWG_dX;
bool modelPar_given_WPRWG;
double modelPar_WWR;
double d_modelPar_WWR_dX;
bool modelPar_given_WWR;
double modelPar_WNFACTOR;
double d_modelPar_WNFACTOR_dX;
bool modelPar_given_WNFACTOR;
double modelPar_WDWG;
double d_modelPar_WDWG_dX;
bool modelPar_given_WDWG;
double modelPar_WDWB;
double d_modelPar_WDWB_dX;
bool modelPar_given_WDWB;
double modelPar_WVOFF;
double d_modelPar_WVOFF_dX;
bool modelPar_given_WVOFF;
double modelPar_WETA0;
double d_modelPar_WETA0_dX;
bool modelPar_given_WETA0;
double modelPar_WETAB;
double d_modelPar_WETAB_dX;
bool modelPar_given_WETAB;
double modelPar_WETA0CV;
double d_modelPar_WETA0CV_dX;
bool modelPar_given_WETA0CV;
double modelPar_WETABCV;
double d_modelPar_WETABCV_dX;
bool modelPar_given_WETABCV;
double modelPar_WDSUB;
double d_modelPar_WDSUB_dX;
bool modelPar_given_WDSUB;
double modelPar_WCIT;
double d_modelPar_WCIT_dX;
bool modelPar_given_WCIT;
double modelPar_WCDSC;
double d_modelPar_WCDSC_dX;
bool modelPar_given_WCDSC;
double modelPar_WCDSCB;
double d_modelPar_WCDSCB_dX;
bool modelPar_given_WCDSCB;
double modelPar_WCDSCD;
double d_modelPar_WCDSCD_dX;
bool modelPar_given_WCDSCD;
double modelPar_WPCLM;
double d_modelPar_WPCLM_dX;
bool modelPar_given_WPCLM;
double modelPar_WPDIBLC1;
double d_modelPar_WPDIBLC1_dX;
bool modelPar_given_WPDIBLC1;
double modelPar_WPDIBLC2;
double d_modelPar_WPDIBLC2_dX;
bool modelPar_given_WPDIBLC2;
double modelPar_WPDIBLCB;
double d_modelPar_WPDIBLCB_dX;
bool modelPar_given_WPDIBLCB;
double modelPar_WDROUT;
double d_modelPar_WDROUT_dX;
bool modelPar_given_WDROUT;
double modelPar_WPVAG;
double d_modelPar_WPVAG_dX;
bool modelPar_given_WPVAG;
double modelPar_WDELTA;
double d_modelPar_WDELTA_dX;
bool modelPar_given_WDELTA;
double modelPar_WALPHA0;
double d_modelPar_WALPHA0_dX;
bool modelPar_given_WALPHA0;
double modelPar_WFBJTII;
double d_modelPar_WFBJTII_dX;
bool modelPar_given_WFBJTII;
double modelPar_WABJTII;
double d_modelPar_WABJTII_dX;
bool modelPar_given_WABJTII;
double modelPar_WCBJTII;
double d_modelPar_WCBJTII_dX;
bool modelPar_given_WCBJTII;
double modelPar_WEBJTII;
double d_modelPar_WEBJTII_dX;
bool modelPar_given_WEBJTII;
double modelPar_WMBJTII;
double d_modelPar_WMBJTII_dX;
bool modelPar_given_WMBJTII;
double modelPar_WVBCI;
double d_modelPar_WVBCI_dX;
bool modelPar_given_WVBCI;
double modelPar_WBETA0;
double d_modelPar_WBETA0_dX;
bool modelPar_given_WBETA0;
double modelPar_WBETA1;
double d_modelPar_WBETA1_dX;
bool modelPar_given_WBETA1;
double modelPar_WBETA2;
double d_modelPar_WBETA2_dX;
bool modelPar_given_WBETA2;
double modelPar_WVDSATII0;
double d_modelPar_WVDSATII0_dX;
bool modelPar_given_WVDSATII0;
double modelPar_WLII;
double d_modelPar_WLII_dX;
bool modelPar_given_WLII;
double modelPar_WESATII;
double d_modelPar_WESATII_dX;
bool modelPar_given_WESATII;
double modelPar_WSII0;
double d_modelPar_WSII0_dX;
bool modelPar_given_WSII0;
double modelPar_WSII1;
double d_modelPar_WSII1_dX;
bool modelPar_given_WSII1;
double modelPar_WSII2;
double d_modelPar_WSII2_dX;
bool modelPar_given_WSII2;
double modelPar_WSIID;
double d_modelPar_WSIID_dX;
bool modelPar_given_WSIID;
double modelPar_WAGIDL;
double d_modelPar_WAGIDL_dX;
bool modelPar_given_WAGIDL;
double modelPar_WBGIDL;
double d_modelPar_WBGIDL_dX;
bool modelPar_given_WBGIDL;
double modelPar_WCGIDL;
double d_modelPar_WCGIDL_dX;
bool modelPar_given_WCGIDL;
double modelPar_WRGIDL;
double d_modelPar_WRGIDL_dX;
bool modelPar_given_WRGIDL;
double modelPar_WKGIDL;
double d_modelPar_WKGIDL_dX;
bool modelPar_given_WKGIDL;
double modelPar_WFGIDL;
double d_modelPar_WFGIDL_dX;
bool modelPar_given_WFGIDL;
double modelPar_WAGISL;
double d_modelPar_WAGISL_dX;
bool modelPar_given_WAGISL;
double modelPar_WBGISL;
double d_modelPar_WBGISL_dX;
bool modelPar_given_WBGISL;
double modelPar_WCGISL;
double d_modelPar_WCGISL_dX;
bool modelPar_given_WCGISL;
double modelPar_WRGISL;
double d_modelPar_WRGISL_dX;
bool modelPar_given_WRGISL;
double modelPar_WKGISL;
double d_modelPar_WKGISL_dX;
bool modelPar_given_WKGISL;
double modelPar_WFGISL;
double d_modelPar_WFGISL_dX;
bool modelPar_given_WFGISL;
double modelPar_WNTUN;
double d_modelPar_WNTUN_dX;
bool modelPar_given_WNTUN;
double modelPar_WNTUND;
double d_modelPar_WNTUND_dX;
bool modelPar_given_WNTUND;
double modelPar_WNDIODE;
double d_modelPar_WNDIODE_dX;
bool modelPar_given_WNDIODE;
double modelPar_WNDIODED;
double d_modelPar_WNDIODED_dX;
bool modelPar_given_WNDIODED;
double modelPar_WNRECF0;
double d_modelPar_WNRECF0_dX;
bool modelPar_given_WNRECF0;
double modelPar_WNRECF0D;
double d_modelPar_WNRECF0D_dX;
bool modelPar_given_WNRECF0D;
double modelPar_WNRECR0;
double d_modelPar_WNRECR0_dX;
bool modelPar_given_WNRECR0;
double modelPar_WNRECR0D;
double d_modelPar_WNRECR0D_dX;
bool modelPar_given_WNRECR0D;
double modelPar_WISBJT;
double d_modelPar_WISBJT_dX;
bool modelPar_given_WISBJT;
double modelPar_WIDBJT;
double d_modelPar_WIDBJT_dX;
bool modelPar_given_WIDBJT;
double modelPar_WISDIF;
double d_modelPar_WISDIF_dX;
bool modelPar_given_WISDIF;
double modelPar_WIDDIF;
double d_modelPar_WIDDIF_dX;
bool modelPar_given_WIDDIF;
double modelPar_WISREC;
double d_modelPar_WISREC_dX;
bool modelPar_given_WISREC;
double modelPar_WIDREC;
double d_modelPar_WIDREC_dX;
bool modelPar_given_WIDREC;
double modelPar_WISTUN;
double d_modelPar_WISTUN_dX;
bool modelPar_given_WISTUN;
double modelPar_WIDTUN;
double d_modelPar_WIDTUN_dX;
bool modelPar_given_WIDTUN;
double modelPar_WVREC0;
double d_modelPar_WVREC0_dX;
bool modelPar_given_WVREC0;
double modelPar_WVREC0D;
double d_modelPar_WVREC0D_dX;
bool modelPar_given_WVREC0D;
double modelPar_WVTUN0;
double d_modelPar_WVTUN0_dX;
bool modelPar_given_WVTUN0;
double modelPar_WVTUN0D;
double d_modelPar_WVTUN0D_dX;
bool modelPar_given_WVTUN0D;
double modelPar_WNBJT;
double d_modelPar_WNBJT_dX;
bool modelPar_given_WNBJT;
double modelPar_WLBJT0;
double d_modelPar_WLBJT0_dX;
bool modelPar_given_WLBJT0;
double modelPar_WVABJT;
double d_modelPar_WVABJT_dX;
bool modelPar_given_WVABJT;
double modelPar_WAELY;
double d_modelPar_WAELY_dX;
bool modelPar_given_WAELY;
double modelPar_WAHLI;
double d_modelPar_WAHLI_dX;
bool modelPar_given_WAHLI;
double modelPar_WAHLID;
double d_modelPar_WAHLID_dX;
bool modelPar_given_WAHLID;
double modelPar_WVSDFB;
double d_modelPar_WVSDFB_dX;
bool modelPar_given_WVSDFB;
double modelPar_WVSDTH;
double d_modelPar_WVSDTH_dX;
bool modelPar_given_WVSDTH;
double modelPar_WDELVT;
double d_modelPar_WDELVT_dX;
bool modelPar_given_WDELVT;
double modelPar_WACDE;
double d_modelPar_WACDE_dX;
bool modelPar_given_WACDE;
double modelPar_WMOIN;
double d_modelPar_WMOIN_dX;
bool modelPar_given_WMOIN;
double modelPar_WNOFF;
double d_modelPar_WNOFF_dX;
bool modelPar_given_WNOFF;
double modelPar_WXRCRG1;
double d_modelPar_WXRCRG1_dX;
bool modelPar_given_WXRCRG1;
double modelPar_WXRCRG2;
double d_modelPar_WXRCRG2_dX;
bool modelPar_given_WXRCRG2;
double modelPar_PXJ;
double d_modelPar_PXJ_dX;
bool modelPar_given_PXJ;
double modelPar_PALPHAGB1;
double d_modelPar_PALPHAGB1_dX;
bool modelPar_given_PALPHAGB1;
double modelPar_PBETAGB1;
double d_modelPar_PBETAGB1_dX;
bool modelPar_given_PBETAGB1;
double modelPar_PALPHAGB2;
double d_modelPar_PALPHAGB2_dX;
bool modelPar_given_PALPHAGB2;
double modelPar_PBETAGB2;
double d_modelPar_PBETAGB2_dX;
bool modelPar_given_PBETAGB2;
double modelPar_PAIGBCP2;
double d_modelPar_PAIGBCP2_dX;
bool modelPar_given_PAIGBCP2;
double modelPar_PBIGBCP2;
double d_modelPar_PBIGBCP2_dX;
bool modelPar_given_PBIGBCP2;
double modelPar_PCIGBCP2;
double d_modelPar_PCIGBCP2_dX;
bool modelPar_given_PCIGBCP2;
double modelPar_PCGSL;
double d_modelPar_PCGSL_dX;
bool modelPar_given_PCGSL;
double modelPar_PCGDL;
double d_modelPar_PCGDL_dX;
bool modelPar_given_PCGDL;
double modelPar_PCKAPPA;
double d_modelPar_PCKAPPA_dX;
bool modelPar_given_PCKAPPA;
double modelPar_PNDIF;
double d_modelPar_PNDIF_dX;
bool modelPar_given_PNDIF;
double modelPar_PUTE;
double d_modelPar_PUTE_dX;
bool modelPar_given_PUTE;
double modelPar_PKT1;
double d_modelPar_PKT1_dX;
bool modelPar_given_PKT1;
double modelPar_PKT1L;
double d_modelPar_PKT1L_dX;
bool modelPar_given_PKT1L;
double modelPar_PKT2;
double d_modelPar_PKT2_dX;
bool modelPar_given_PKT2;
double modelPar_PUA1;
double d_modelPar_PUA1_dX;
bool modelPar_given_PUA1;
double modelPar_PUB1;
double d_modelPar_PUB1_dX;
bool modelPar_given_PUB1;
double modelPar_PUC1;
double d_modelPar_PUC1_dX;
bool modelPar_given_PUC1;
double modelPar_PAT;
double d_modelPar_PAT_dX;
bool modelPar_given_PAT;
double modelPar_PPRT;
double d_modelPar_PPRT_dX;
bool modelPar_given_PPRT;
double modelPar_PNTRECF;
double d_modelPar_PNTRECF_dX;
bool modelPar_given_PNTRECF;
double modelPar_PNTRECR;
double d_modelPar_PNTRECR_dX;
bool modelPar_given_PNTRECR;
double modelPar_PXBJT;
double d_modelPar_PXBJT_dX;
bool modelPar_given_PXBJT;
double modelPar_PXDIF;
double d_modelPar_PXDIF_dX;
bool modelPar_given_PXDIF;
double modelPar_PXREC;
double d_modelPar_PXREC_dX;
bool modelPar_given_PXREC;
double modelPar_PXTUN;
double d_modelPar_PXTUN_dX;
bool modelPar_given_PXTUN;
double modelPar_PXDIFD;
double d_modelPar_PXDIFD_dX;
bool modelPar_given_PXDIFD;
double modelPar_PXRECD;
double d_modelPar_PXRECD_dX;
bool modelPar_given_PXRECD;
double modelPar_PXTUND;
double d_modelPar_PXTUND_dX;
bool modelPar_given_PXTUND;
double modelPar_PAIGC;
double d_modelPar_PAIGC_dX;
bool modelPar_given_PAIGC;
double modelPar_PBIGC;
double d_modelPar_PBIGC_dX;
bool modelPar_given_PBIGC;
double modelPar_PCIGC;
double d_modelPar_PCIGC_dX;
bool modelPar_given_PCIGC;
double modelPar_PAIGSD;
double d_modelPar_PAIGSD_dX;
bool modelPar_given_PAIGSD;
double modelPar_PBIGSD;
double d_modelPar_PBIGSD_dX;
bool modelPar_given_PBIGSD;
double modelPar_PCIGSD;
double d_modelPar_PCIGSD_dX;
bool modelPar_given_PCIGSD;
double modelPar_PNIGC;
double d_modelPar_PNIGC_dX;
bool modelPar_given_PNIGC;
double modelPar_PPIGCD;
double d_modelPar_PPIGCD_dX;
bool modelPar_given_PPIGCD;
double modelPar_PPOXEDGE;
double d_modelPar_PPOXEDGE_dX;
bool modelPar_given_PPOXEDGE;
double modelPar_PNCH;
double d_modelPar_PNCH_dX;
bool modelPar_given_PNCH;
double modelPar_PNSUB;
double d_modelPar_PNSUB_dX;
bool modelPar_given_PNSUB;
double modelPar_PNSD;
double d_modelPar_PNSD_dX;
bool modelPar_given_PNSD;
double modelPar_PNGATE;
double d_modelPar_PNGATE_dX;
bool modelPar_given_PNGATE;
double modelPar_PVTH0;
double d_modelPar_PVTH0_dX;
bool modelPar_given_PVTH0;
double modelPar_PVFB;
double d_modelPar_PVFB_dX;
bool modelPar_given_PVFB;
double modelPar_PK1;
double d_modelPar_PK1_dX;
bool modelPar_given_PK1;
double modelPar_PK1W1;
double d_modelPar_PK1W1_dX;
bool modelPar_given_PK1W1;
double modelPar_PK1W2;
double d_modelPar_PK1W2_dX;
bool modelPar_given_PK1W2;
double modelPar_PK2;
double d_modelPar_PK2_dX;
bool modelPar_given_PK2;
double modelPar_PK3;
double d_modelPar_PK3_dX;
bool modelPar_given_PK3;
double modelPar_PK3B;
double d_modelPar_PK3B_dX;
bool modelPar_given_PK3B;
double modelPar_PKB1;
double d_modelPar_PKB1_dX;
bool modelPar_given_PKB1;
double modelPar_PW0;
double d_modelPar_PW0_dX;
bool modelPar_given_PW0;
double modelPar_PLPEB;
double d_modelPar_PLPEB_dX;
bool modelPar_given_PLPEB;
double modelPar_PDVT0;
double d_modelPar_PDVT0_dX;
bool modelPar_given_PDVT0;
double modelPar_PDVT1;
double d_modelPar_PDVT1_dX;
bool modelPar_given_PDVT1;
double modelPar_PDVT2;
double d_modelPar_PDVT2_dX;
bool modelPar_given_PDVT2;
double modelPar_PDVT0W;
double d_modelPar_PDVT0W_dX;
bool modelPar_given_PDVT0W;
double modelPar_PDVT1W;
double d_modelPar_PDVT1W_dX;
bool modelPar_given_PDVT1W;
double modelPar_PDVT2W;
double d_modelPar_PDVT2W_dX;
bool modelPar_given_PDVT2W;
double modelPar_PU0;
double d_modelPar_PU0_dX;
bool modelPar_given_PU0;
double modelPar_PEU;
double d_modelPar_PEU_dX;
bool modelPar_given_PEU;
double modelPar_PUA;
double d_modelPar_PUA_dX;
bool modelPar_given_PUA;
double modelPar_PUB;
double d_modelPar_PUB_dX;
bool modelPar_given_PUB;
double modelPar_PUC;
double d_modelPar_PUC_dX;
bool modelPar_given_PUC;
double modelPar_PUD;
double d_modelPar_PUD_dX;
bool modelPar_given_PUD;
double modelPar_PUD1;
double d_modelPar_PUD1_dX;
bool modelPar_given_PUD1;
double modelPar_PUCSTE;
double d_modelPar_PUCSTE_dX;
bool modelPar_given_PUCSTE;
double modelPar_PUCS;
double d_modelPar_PUCS_dX;
bool modelPar_given_PUCS;
double modelPar_PVSAT;
double d_modelPar_PVSAT_dX;
bool modelPar_given_PVSAT;
double modelPar_PA0;
double d_modelPar_PA0_dX;
bool modelPar_given_PA0;
double modelPar_PAGS;
double d_modelPar_PAGS_dX;
bool modelPar_given_PAGS;
double modelPar_PB0;
double d_modelPar_PB0_dX;
bool modelPar_given_PB0;
double modelPar_PB1;
double d_modelPar_PB1_dX;
bool modelPar_given_PB1;
double modelPar_PKETA;
double d_modelPar_PKETA_dX;
bool modelPar_given_PKETA;
double modelPar_PKETAS;
double d_modelPar_PKETAS_dX;
bool modelPar_given_PKETAS;
double modelPar_PA1;
double d_modelPar_PA1_dX;
bool modelPar_given_PA1;
double modelPar_PA2;
double d_modelPar_PA2_dX;
bool modelPar_given_PA2;
double modelPar_PRDSW;
double d_modelPar_PRDSW_dX;
bool modelPar_given_PRDSW;
double modelPar_PRSW;
double d_modelPar_PRSW_dX;
bool modelPar_given_PRSW;
double modelPar_PRDW;
double d_modelPar_PRDW_dX;
bool modelPar_given_PRDW;
double modelPar_PPRWB;
double d_modelPar_PPRWB_dX;
bool modelPar_given_PPRWB;
double modelPar_PPRWG;
double d_modelPar_PPRWG_dX;
bool modelPar_given_PPRWG;
double modelPar_PWR;
double d_modelPar_PWR_dX;
bool modelPar_given_PWR;
double modelPar_PNFACTOR;
double d_modelPar_PNFACTOR_dX;
bool modelPar_given_PNFACTOR;
double modelPar_PDWG;
double d_modelPar_PDWG_dX;
bool modelPar_given_PDWG;
double modelPar_PDWB;
double d_modelPar_PDWB_dX;
bool modelPar_given_PDWB;
double modelPar_PVOFF;
double d_modelPar_PVOFF_dX;
bool modelPar_given_PVOFF;
double modelPar_PETA0;
double d_modelPar_PETA0_dX;
bool modelPar_given_PETA0;
double modelPar_PETAB;
double d_modelPar_PETAB_dX;
bool modelPar_given_PETAB;
double modelPar_PETA0CV;
double d_modelPar_PETA0CV_dX;
bool modelPar_given_PETA0CV;
double modelPar_PETABCV;
double d_modelPar_PETABCV_dX;
bool modelPar_given_PETABCV;
double modelPar_PDSUB;
double d_modelPar_PDSUB_dX;
bool modelPar_given_PDSUB;
double modelPar_PCIT;
double d_modelPar_PCIT_dX;
bool modelPar_given_PCIT;
double modelPar_PCDSC;
double d_modelPar_PCDSC_dX;
bool modelPar_given_PCDSC;
double modelPar_PCDSCB;
double d_modelPar_PCDSCB_dX;
bool modelPar_given_PCDSCB;
double modelPar_PCDSCD;
double d_modelPar_PCDSCD_dX;
bool modelPar_given_PCDSCD;
double modelPar_PPCLM;
double d_modelPar_PPCLM_dX;
bool modelPar_given_PPCLM;
double modelPar_PPDIBLC1;
double d_modelPar_PPDIBLC1_dX;
bool modelPar_given_PPDIBLC1;
double modelPar_PPDIBLC2;
double d_modelPar_PPDIBLC2_dX;
bool modelPar_given_PPDIBLC2;
double modelPar_PPDIBLCB;
double d_modelPar_PPDIBLCB_dX;
bool modelPar_given_PPDIBLCB;
double modelPar_PDROUT;
double d_modelPar_PDROUT_dX;
bool modelPar_given_PDROUT;
double modelPar_PPVAG;
double d_modelPar_PPVAG_dX;
bool modelPar_given_PPVAG;
double modelPar_PDELTA;
double d_modelPar_PDELTA_dX;
bool modelPar_given_PDELTA;
double modelPar_PALPHA0;
double d_modelPar_PALPHA0_dX;
bool modelPar_given_PALPHA0;
double modelPar_PFBJTII;
double d_modelPar_PFBJTII_dX;
bool modelPar_given_PFBJTII;
double modelPar_PABJTII;
double d_modelPar_PABJTII_dX;
bool modelPar_given_PABJTII;
double modelPar_PCBJTII;
double d_modelPar_PCBJTII_dX;
bool modelPar_given_PCBJTII;
double modelPar_PEBJTII;
double d_modelPar_PEBJTII_dX;
bool modelPar_given_PEBJTII;
double modelPar_PMBJTII;
double d_modelPar_PMBJTII_dX;
bool modelPar_given_PMBJTII;
double modelPar_PVBCI;
double d_modelPar_PVBCI_dX;
bool modelPar_given_PVBCI;
double modelPar_PBETA0;
double d_modelPar_PBETA0_dX;
bool modelPar_given_PBETA0;
double modelPar_PBETA1;
double d_modelPar_PBETA1_dX;
bool modelPar_given_PBETA1;
double modelPar_PBETA2;
double d_modelPar_PBETA2_dX;
bool modelPar_given_PBETA2;
double modelPar_PVDSATII0;
double d_modelPar_PVDSATII0_dX;
bool modelPar_given_PVDSATII0;
double modelPar_PLII;
double d_modelPar_PLII_dX;
bool modelPar_given_PLII;
double modelPar_PESATII;
double d_modelPar_PESATII_dX;
bool modelPar_given_PESATII;
double modelPar_PSII0;
double d_modelPar_PSII0_dX;
bool modelPar_given_PSII0;
double modelPar_PSII1;
double d_modelPar_PSII1_dX;
bool modelPar_given_PSII1;
double modelPar_PSII2;
double d_modelPar_PSII2_dX;
bool modelPar_given_PSII2;
double modelPar_PSIID;
double d_modelPar_PSIID_dX;
bool modelPar_given_PSIID;
double modelPar_PAGIDL;
double d_modelPar_PAGIDL_dX;
bool modelPar_given_PAGIDL;
double modelPar_PBGIDL;
double d_modelPar_PBGIDL_dX;
bool modelPar_given_PBGIDL;
double modelPar_PCGIDL;
double d_modelPar_PCGIDL_dX;
bool modelPar_given_PCGIDL;
double modelPar_PRGIDL;
double d_modelPar_PRGIDL_dX;
bool modelPar_given_PRGIDL;
double modelPar_PKGIDL;
double d_modelPar_PKGIDL_dX;
bool modelPar_given_PKGIDL;
double modelPar_PFGIDL;
double d_modelPar_PFGIDL_dX;
bool modelPar_given_PFGIDL;
double modelPar_PAGISL;
double d_modelPar_PAGISL_dX;
bool modelPar_given_PAGISL;
double modelPar_PBGISL;
double d_modelPar_PBGISL_dX;
bool modelPar_given_PBGISL;
double modelPar_PCGISL;
double d_modelPar_PCGISL_dX;
bool modelPar_given_PCGISL;
double modelPar_PRGISL;
double d_modelPar_PRGISL_dX;
bool modelPar_given_PRGISL;
double modelPar_PKGISL;
double d_modelPar_PKGISL_dX;
bool modelPar_given_PKGISL;
double modelPar_PFGISL;
double d_modelPar_PFGISL_dX;
bool modelPar_given_PFGISL;
double modelPar_PNTUN;
double d_modelPar_PNTUN_dX;
bool modelPar_given_PNTUN;
double modelPar_PNTUND;
double d_modelPar_PNTUND_dX;
bool modelPar_given_PNTUND;
double modelPar_PNDIODE;
double d_modelPar_PNDIODE_dX;
bool modelPar_given_PNDIODE;
double modelPar_PNDIODED;
double d_modelPar_PNDIODED_dX;
bool modelPar_given_PNDIODED;
double modelPar_PNRECF0;
double d_modelPar_PNRECF0_dX;
bool modelPar_given_PNRECF0;
double modelPar_PNRECF0D;
double d_modelPar_PNRECF0D_dX;
bool modelPar_given_PNRECF0D;
double modelPar_PNRECR0;
double d_modelPar_PNRECR0_dX;
bool modelPar_given_PNRECR0;
double modelPar_PNRECR0D;
double d_modelPar_PNRECR0D_dX;
bool modelPar_given_PNRECR0D;
double modelPar_PISBJT;
double d_modelPar_PISBJT_dX;
bool modelPar_given_PISBJT;
double modelPar_PIDBJT;
double d_modelPar_PIDBJT_dX;
bool modelPar_given_PIDBJT;
double modelPar_PISDIF;
double d_modelPar_PISDIF_dX;
bool modelPar_given_PISDIF;
double modelPar_PIDDIF;
double d_modelPar_PIDDIF_dX;
bool modelPar_given_PIDDIF;
double modelPar_PISREC;
double d_modelPar_PISREC_dX;
bool modelPar_given_PISREC;
double modelPar_PIDREC;
double d_modelPar_PIDREC_dX;
bool modelPar_given_PIDREC;
double modelPar_PISTUN;
double d_modelPar_PISTUN_dX;
bool modelPar_given_PISTUN;
double modelPar_PIDTUN;
double d_modelPar_PIDTUN_dX;
bool modelPar_given_PIDTUN;
double modelPar_PVREC0;
double d_modelPar_PVREC0_dX;
bool modelPar_given_PVREC0;
double modelPar_PVREC0D;
double d_modelPar_PVREC0D_dX;
bool modelPar_given_PVREC0D;
double modelPar_PVTUN0;
double d_modelPar_PVTUN0_dX;
bool modelPar_given_PVTUN0;
double modelPar_PVTUN0D;
double d_modelPar_PVTUN0D_dX;
bool modelPar_given_PVTUN0D;
double modelPar_PNBJT;
double d_modelPar_PNBJT_dX;
bool modelPar_given_PNBJT;
double modelPar_PLBJT0;
double d_modelPar_PLBJT0_dX;
bool modelPar_given_PLBJT0;
double modelPar_PVABJT;
double d_modelPar_PVABJT_dX;
bool modelPar_given_PVABJT;
double modelPar_PAELY;
double d_modelPar_PAELY_dX;
bool modelPar_given_PAELY;
double modelPar_PAHLI;
double d_modelPar_PAHLI_dX;
bool modelPar_given_PAHLI;
double modelPar_PAHLID;
double d_modelPar_PAHLID_dX;
bool modelPar_given_PAHLID;
double modelPar_PVSDFB;
double d_modelPar_PVSDFB_dX;
bool modelPar_given_PVSDFB;
double modelPar_PVSDTH;
double d_modelPar_PVSDTH_dX;
bool modelPar_given_PVSDTH;
double modelPar_PDELVT;
double d_modelPar_PDELVT_dX;
bool modelPar_given_PDELVT;
double modelPar_PACDE;
double d_modelPar_PACDE_dX;
bool modelPar_given_PACDE;
double modelPar_PMOIN;
double d_modelPar_PMOIN_dX;
bool modelPar_given_PMOIN;
double modelPar_PNOFF;
double d_modelPar_PNOFF_dX;
bool modelPar_given_PNOFF;
double modelPar_PXRCRG1;
double d_modelPar_PXRCRG1_dX;
bool modelPar_given_PXRCRG1;
double modelPar_PXRCRG2;
double d_modelPar_PXRCRG2_dX;
bool modelPar_given_PXRCRG2;
double modelPar_NLX;
double d_modelPar_NLX_dX;
bool modelPar_given_NLX;
double modelPar_LNLX;
double d_modelPar_LNLX_dX;
bool modelPar_given_LNLX;
double modelPar_WNLX;
double d_modelPar_WNLX_dX;
bool modelPar_given_WNLX;
double modelPar_PNLX;
double d_modelPar_PNLX_dX;
bool modelPar_given_PNLX;
double modelPar_NGIDL;
double d_modelPar_NGIDL_dX;
bool modelPar_given_NGIDL;
double modelPar_LNGIDL;
double d_modelPar_LNGIDL_dX;
bool modelPar_given_LNGIDL;
double modelPar_WNGIDL;
double d_modelPar_WNGIDL_dX;
bool modelPar_given_WNGIDL;
double modelPar_PNGIDL;
double d_modelPar_PNGIDL_dX;
bool modelPar_given_PNGIDL;
double modelPar_LPE0;
double d_modelPar_LPE0_dX;
bool modelPar_given_LPE0;
double modelPar_EGIDL;
double d_modelPar_EGIDL_dX;
bool modelPar_given_EGIDL;
double modelPar_EGISL;
double d_modelPar_EGISL_dX;
bool modelPar_given_EGISL;
double modelPar_LLPE0;
double d_modelPar_LLPE0_dX;
bool modelPar_given_LLPE0;
double modelPar_LEGIDL;
double d_modelPar_LEGIDL_dX;
bool modelPar_given_LEGIDL;
double modelPar_LEGISL;
double d_modelPar_LEGISL_dX;
bool modelPar_given_LEGISL;
double modelPar_WLPE0;
double d_modelPar_WLPE0_dX;
bool modelPar_given_WLPE0;
double modelPar_WEGIDL;
double d_modelPar_WEGIDL_dX;
bool modelPar_given_WEGIDL;
double modelPar_WEGISL;
double d_modelPar_WEGISL_dX;
bool modelPar_given_WEGISL;
double modelPar_PLPE0;
double d_modelPar_PLPE0_dX;
bool modelPar_given_PLPE0;
double modelPar_PEGIDL;
double d_modelPar_PEGIDL_dX;
bool modelPar_given_PEGIDL;
double modelPar_PEGISL;
double d_modelPar_PEGISL_dX;
bool modelPar_given_PEGISL;
double modelPar_EGGBCP2;
double d_modelPar_EGGBCP2_dX;
bool modelPar_given_EGGBCP2;
double modelPar_EGGDEP;
double d_modelPar_EGGDEP_dX;
bool modelPar_given_EGGDEP;
double modelPar_AGB1;
double d_modelPar_AGB1_dX;
bool modelPar_given_AGB1;
double modelPar_BGB1;
double d_modelPar_BGB1_dX;
bool modelPar_given_BGB1;
double modelPar_AGB2;
double d_modelPar_AGB2_dX;
bool modelPar_given_AGB2;
double modelPar_BGB2;
double d_modelPar_BGB2_dX;
bool modelPar_given_BGB2;
double modelPar_AGBC2N;
double d_modelPar_AGBC2N_dX;
bool modelPar_given_AGBC2N;
double modelPar_AGBC2P;
double d_modelPar_AGBC2P_dX;
bool modelPar_given_AGBC2P;
double modelPar_BGBC2N;
double d_modelPar_BGBC2N_dX;
bool modelPar_given_BGBC2N;
double modelPar_BGBC2P;
double d_modelPar_BGBC2P_dX;
bool modelPar_given_BGBC2P;
double modelPar_VTM00;
double d_modelPar_VTM00_dX;
bool modelPar_given_VTM00;
// non-reals (including hidden)
int modelPar_TYPE;
bool modelPar_given_TYPE;
int modelPar_OFF;
bool modelPar_given_OFF;
int modelPar_BJTOFF;
bool modelPar_given_BJTOFF;
int modelPar_DEBUG;
bool modelPar_given_DEBUG;
int modelPar_SOIMOD;
bool modelPar_given_SOIMOD;
int modelPar_RGATEMOD;
bool modelPar_given_RGATEMOD;
int modelPar_RBODYMOD;
bool modelPar_given_RBODYMOD;
int modelPar_MTRLMOD;
bool modelPar_given_MTRLMOD;
int modelPar_VGSTCVMOD;
bool modelPar_given_VGSTCVMOD;
int modelPar_GIDLMOD;
bool modelPar_given_GIDLMOD;
int modelPar_IIIMOD;
bool modelPar_given_IIIMOD;
int modelPar_CAPMOD;
bool modelPar_given_CAPMOD;
int modelPar_MOBMOD;
bool modelPar_given_MOBMOD;
int modelPar_PARAMCHK;
bool modelPar_given_PARAMCHK;
int modelPar_BINUNIT;
bool modelPar_given_BINUNIT;
int modelPar_SHMOD;
bool modelPar_given_SHMOD;
int modelPar_FNOIMOD;
bool modelPar_given_FNOIMOD;
int modelPar_TNOIMOD;
bool modelPar_given_TNOIMOD;
int modelPar_IGBMOD;
bool modelPar_given_IGBMOD;
int modelPar_IGMOD;
bool modelPar_given_IGMOD;
int modelPar_IGCMOD;
bool modelPar_given_IGCMOD;
int modelPar_RDSMOD;
bool modelPar_given_RDSMOD;
int modelPar_FDMOD;
bool modelPar_given_FDMOD;
};



//-----------------------------------------------------------------------------
// Free functions used by sensitivity
//
//-----------------------------------------------------------------------------
void evaluateModelEquations(
std::vector <double> & probeVars,
// probe constants
const int admsProbeID_V_sb_GND,
const int admsProbeID_V_db_GND,
const int admsProbeID_V_b_sb,
const int admsProbeID_V_b_db,
const int admsProbeID_V_gm_gi,
const int admsProbeID_V_g_gm,
const int admsProbeID_V_gi_e,
const int admsProbeID_V_gm_e,
const int admsProbeID_V_s_si,
const int admsProbeID_V_d_di,
const int admsProbeID_V_si_GND,
const int admsProbeID_V_di_GND,
const int admsProbeID_V_gi_GND,
const int admsProbeID_V_gm_si,
const int admsProbeID_V_db_di,
const int admsProbeID_V_sb_si,
const int admsProbeID_V_gi_p,
const int admsProbeID_V_b_p,
const int admsProbeID_V_e_si,
const int admsProbeID_V_gi_si,
const int admsProbeID_V_b_si,
const int admsProbeID_V_di_si,
const int admsProbeID_Temp_t_GND,
const int admsProbeID_V_p_GND,
const int admsProbeID_V_b_GND,
// node constants
const int admsNodeID_d,
const int admsNodeID_g,
const int admsNodeID_s,
const int admsNodeID_e,
const int admsNodeID_p,
const int admsNodeID_b,
const int admsNodeID_t,
const int admsNodeID_di,
const int admsNodeID_si,
const int admsNodeID_gi,
const int admsNodeID_gm,
const int admsNodeID_sb,
const int admsNodeID_db,
instanceSensStruct & instanceStruct,
modelSensStruct & modelStruct,
const std::vector<bool> & portsConnected_,
// basic variables
 double admsTemperature, double adms_vt_nom, double ADMSgmin_arg, std::vector <double> & d_staticContributions_dX, std::vector <double> & d_dynamicContributions_dX, const Instance & theInstance);

void evaluateInitialInstance(
instanceSensStruct & instanceStruct,
modelSensStruct & modelStruct,
const int admsNodeID_d,
const int admsNodeID_g,
const int admsNodeID_s,
const int admsNodeID_e,
const int admsNodeID_p,
const int admsNodeID_b,
const int admsNodeID_t,
const int admsNodeID_di,
const int admsNodeID_si,
const int admsNodeID_gi,
const int admsNodeID_gm,
const int admsNodeID_sb,
const int admsNodeID_db,
 const std::vector<bool> & portsConnected_,
 double admsTemperature,double adms_vt_nom, double ADMSgmin_arg, const Instance & theInstance);

void evaluateInitialModel(
modelSensStruct & modelStruct,
 double admsTemperature, double ADMSgmin_arg, const Instance & theInstance);

#endif // Xyce_ADMS_SENSITIVITIES


// Limited exponential --- NOT what verilog LRM says, but what qucs,
// ng-spice, and zspice do.

template <typename T>
T limexp(const T &x)
{
  if ((x) < 80.0)
  return (exp(x));
  else
  return (exp(80.0)*(x-79.0));
}


struct Traits: public DeviceTraits<Model, Instance, MOSFET1::Traits>
{
  static const char *name() {return "BSIM-SOI 4.5.0";}
  static const char *deviceTypeName() {return "M level 70450";}

  static int numNodes() {return 4;}

  static int numOptionalNodes() {return 3;};

  static bool modelRequired() {return true;}
  static bool isLinearDevice() {return false;}

  static Device *factory(const Configuration &configuration, const FactoryBlock &factory_block);
  static void loadModelParameters(ParametricData<Model> &model_parameters);
  static void loadInstanceParameters(ParametricData<Instance> &instance_parameters);
};

//-----------------------------------------------------------------------------
// Class         : Instance

//
// Purpose       : This class represents a single instance  of the
//                 device.  It mainly contains indices and pointers into
//                 the matrix equation (see the resistor instance class for
//                 more details).
//
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class Instance : public DeviceInstance
{
  friend class ParametricData<Instance>;
  friend class Model;
#ifdef Xyce_ADMS_SENSITIVITIES
  friend class InstanceSensitivity;
  friend class ModelSensitivity;
#endif // Xyce_ADMS_SENSITIVITIES
  friend struct Traits;

  public:
    Instance(
      const Configuration &       configuration,
      const InstanceBlock &       instance_block,
      Model &                     model,
      const FactoryBlock &        factory_block);

    ~Instance();

private:
    Instance(const Instance &);
    Instance &operator=(const Instance &);

public:
    void registerLIDs( const LocalIdVector & intLIDVecRef,
                       const LocalIdVector & extLIDVecRef );
    void registerStoreLIDs( const LocalIdVector & stoLIDVecRef );
    void setupPointers();

    void loadNodeSymbols(Util::SymbolTable &symbol_table) const;

    const JacobianStamp & jacobianStamp() const;
    void registerJacLIDs( const JacobianStamp & jacLIDVec );

    void registerBranchDataLIDs(const std::vector<int> & branchLIDVecRef);

    bool processParams();
    bool updateTemperature ( const double & temp = -999.0 );
    bool updateIntermediateVars ();
    bool updatePrimaryState ();
    bool updateSecondaryState ();

    // load functions, residual:
    bool loadDAEQVector ();
    bool loadDAEFVector ();

    // load functions, Jacobian:
    bool loadDAEdQdx ();
    bool loadDAEdFdx ();

      void collapseNodes();
      int getNumNoiseSources () const;  // 16
      void setupNoiseSources (Xyce::Analysis::NoiseData & noiseData);
      void getNoiseSources (Xyce::Analysis::NoiseData & noiseData);

  private:

  public:
    // iterator reference to the bsimsoi450 model which owns this instance.
    // Getters and setters
    Model &getModel()
    {
      return model_;
    }

  private:

    Model & model_;   //< Owning Model
    // Begin verilog Instance Variables
    //   Instance Parameters
    double DTEMP;
    double L;
    double W;
    double NF;
    double SA;
    double SB;
    double SD;
    double AD;
    double AS;
    double PD;
    double PS;
    double NRD;
    double NRS;
    int OFF;
    int BJTOFF;
    double RTH0;
    double CTH0;
    double NRB;
    double FRBODY;
    double RBDB;
    double RBSB;
    double DELVTO;
    int SOIMOD;
    double NBC;
    double NSEG;
    double PDBCP;
    double PSBCP;
    double AGBCP;
    double AGBCP2;
    double AGBCPD;
    double AEBCP;
    int TNODEOUT;
    int SHMOD;
    double m;
    //  Variables of global_instance scope
    double VDSAT;
    double VTH;
    double IDS;
    double GM;
    double GDS;
    double GMBS;
    double IC;
    double IBD;
    double IBS;
    double IGIDL;
    double IGISL;
    double IGS;
    double IGD;
    double IGB;
    double IGCS;
    double IGCD;
    double CGG;
    double CGS;
    double CGD;
    double CBG;
    double CBD;
    double CBS;
    double CDG;
    double CDD;
    double CDS;
    double CAPBD;
    double CAPBS;
    double QG;
     double d_QG_dV_gi_p;
     double d_QG_dV_db_di;
     double d_QG_dV_sb_si;
     double d_QG_dV_di_si;
     double d_QG_dV_gi_si;
     double d_QG_dTemp_t_GND;
     double d_QG_dV_p_GND;
     double d_QG_dV_b_GND;
     double d_QG_dV_b_si;
     double d_QG_dV_e_si;
    double QB;
     double d_QB_dV_b_si;
     double d_QB_dV_e_si;
     double d_QB_dV_di_si;
     double d_QB_dV_gi_si;
     double d_QB_dTemp_t_GND;
     double d_QB_dV_p_GND;
     double d_QB_dV_b_GND;
     double d_QB_dV_gi_p;
     double d_QB_dV_db_di;
     double d_QB_dV_sb_si;
    double QD;
     double d_QD_dV_gi_p;
     double d_QD_dV_db_di;
     double d_QD_dV_sb_si;
     double d_QD_dV_di_si;
     double d_QD_dV_gi_si;
     double d_QD_dTemp_t_GND;
     double d_QD_dV_p_GND;
     double d_QD_dV_b_GND;
     double d_QD_dV_b_si;
     double d_QD_dV_e_si;
    double QS;
    double QJD;
     double d_QJD_dTemp_t_GND;
     double d_QJD_dV_p_GND;
     double d_QJD_dV_b_GND;
     double d_QJD_dV_gi_p;
     double d_QJD_dV_db_di;
     double d_QJD_dV_sb_si;
     double d_QJD_dV_b_si;
     double d_QJD_dV_e_si;
     double d_QJD_dV_di_si;
     double d_QJD_dV_gi_si;
    double QJS;
     double d_QJS_dTemp_t_GND;
     double d_QJS_dV_p_GND;
     double d_QJS_dV_b_GND;
     double d_QJS_dV_gi_p;
     double d_QJS_dV_db_di;
     double d_QJS_dV_sb_si;
     double d_QJS_dV_b_si;
     double d_QJS_dV_e_si;
     double d_QJS_dV_di_si;
     double d_QJS_dV_gi_si;
    int B4SOItype;
    double B4SOInf;
    double B4SOIsa;
    double B4SOIsb;
    double B4SOIsd;
    int B4SOIbjtoff;
    double B4SOIrth0;
    double B4SOIcth0;
    int B4SOIsoiMod;
    double B4SOInbc;
    double B4SOInseg;
    double B4SOIagbcp;
    double B4SOIagbcp2;
    double B4SOIagbcpd;
    double B4SOIaebcp;
    int B4SOIrgateMod;
    int B4SOIrbodyMod;
    int B4SOImtrlMod;
    int B4SOIvgstcvMod;
    int B4SOIgidlMod;
    int B4SOIiiiMod;
    double B4SOIeot;
    double B4SOIepsrsub;
    double B4SOIni0sub;
    double B4SOIbg0sub;
    double B4SOItbgasub;
    double B4SOItbgbsub;
    double B4SOIphig;
    double B4SOIeasub;
    double B4SOIleffeot;
    double B4SOIweffeot;
    double B4SOIados;
    double B4SOIbdos;
    double B4SOIepsrgate;
    int B4SOIcapMod;
    int B4SOImobMod;
    double B4SOItox;
    double B4SOItoxp;
    double B4SOItoxm;
    double B4SOIdtoxcv;
    double B4SOInpeak;
    double B4SOIngate;
    double B4SOInsd;
    double B4SOItnom;
    double B4SOIxpart;
    double B4SOIrswmin;
    double B4SOIrdwmin;
    double B4SOItbox;
    double B4SOItsi;
    double B4SOIegidl;
    double B4SOIagidl;
    double B4SOIbgidl;
    double B4SOIcgidl;
    double B4SOIegisl;
    double B4SOIagisl;
    double B4SOIbgisl;
    double B4SOIcgisl;
    double B4SOIndiode;
    double B4SOIndioded;
    double B4SOIGatesidewallJctSPotential;
    double B4SOIGatesidewallJctDPotential;
    double B4SOIbodyJctGateSideSGradingCoeff;
    double B4SOIbodyJctGateSideDGradingCoeff;
    double B4SOIunitLengthGateSidewallJctCapS;
    double B4SOIunitLengthGateSidewallJctCapD;
    double B4SOIoxideTrapDensityA;
    double B4SOIoxideTrapDensityB;
    double B4SOIoxideTrapDensityC;
    double B4SOItnoia;
    double B4SOItnoib;
    double B4SOIrnoia;
    double B4SOIrnoib;
    double B4SOIntnoi;
    double B4SOIsaref;
    double B4SOIsbref;
    double B4SOIku0;
    double B4SOIkvsat;
    double B4SOItku0;
    double B4SOIlodk2;
    double B4SOIlodeta0;
    double B4SOIlodeta0cv;
    double B4SOIbf;
    double B4SOIw0flk;
    double B4SOIpditsl;
    double B4SOIem;
    double B4SOIef;
    double B4SOIaf;
    double B4SOIkf;
    double B4SOInoif;
    double B4SOIk1w1;
    double B4SOIk1w2;
    double B4SOIketas;
    double B4SOIdwbc;
    double B4SOIbeta0;
    double B4SOIbeta1;
    double B4SOIbeta2;
    double B4SOItii;
    double B4SOIlii;
    double B4SOIsii1;
    double B4SOIsii2;
    double B4SOIsiid;
    double B4SOIfbjtii;
    double B4SOItvbci;
    double B4SOIesatii;
    double B4SOIntun;
    double B4SOIntund;
    double B4SOIisbjt;
    double B4SOIidbjt;
    double B4SOIisdif;
    double B4SOIiddif;
    double B4SOIisrec;
    double B4SOIidrec;
    double B4SOIistun;
    double B4SOIidtun;
    double B4SOIvrec0;
    double B4SOIvrec0d;
    double B4SOIvtun0;
    double B4SOIvtun0d;
    double B4SOInbjt;
    double B4SOIaely;
    double B4SOIahli;
    double B4SOIahlid;
    double B4SOIrbody;
    double B4SOIrbsh;
    double B4SOItt;
    double B4SOIcsdmin;
    double B4SOIasd;
    double B4SOIcsdesw;
    double B4SOIfbody;
    double B4SOItcjswg;
    double B4SOItpbswg;
    double B4SOItcjswgd;
    double B4SOItpbswgd;
    double B4SOIacde;
    double B4SOImoin;
    double B4SOIdlbg;
    int B4SOIigbMod;
    int B4SOIigcMod;
    double B4SOItoxqm;
    double B4SOIwth0;
    double B4SOIrhalo;
    double B4SOIntox;
    double B4SOItoxref;
    double B4SOIebg;
    double B4SOIvevb;
    double B4SOIvgb1;
    double B4SOIvecb;
    double B4SOIvgb2;
    double B4SOIvoxh;
    double B4SOIdeltavox;
    double B4SOIvbsa;
    double B4SOInofffd;
    double B4SOIvofffd;
    double B4SOIk1b;
    double B4SOIk2b;
    double B4SOIdk2b;
    double B4SOIdvbd0;
    double B4SOIdvbd1;
    double B4SOImoinFD;
    int B4SOIrdsMod;
    int B4SOIfdMod;
    double B4SOIvsce;
    double B4SOIcdsbs;
    double B4SOIvtm;
     double d_B4SOIvtm_dTemp_t_GND;
     double d_B4SOIvtm_dV_p_GND;
     double d_B4SOIvtm_dV_b_GND;
    double B4SOIueff;
    double B4SOIthetavth;
     double d_B4SOIthetavth_dV_b_si;
     double d_B4SOIthetavth_dV_e_si;
     double d_B4SOIthetavth_dV_di_si;
     double d_B4SOIthetavth_dV_gi_si;
     double d_B4SOIthetavth_dTemp_t_GND;
     double d_B4SOIthetavth_dV_p_GND;
     double d_B4SOIthetavth_dV_b_GND;
    double B4SOIInv_ODeff;
    double B4SOIgrbsb;
    double B4SOIgrbdb;
    double B4SOIgstot;
     double d_B4SOIgstot_dV_gi_p;
     double d_B4SOIgstot_dV_db_di;
     double d_B4SOIgstot_dV_sb_si;
     double d_B4SOIgstot_dV_b_si;
     double d_B4SOIgstot_dV_di_si;
     double d_B4SOIgstot_dV_gi_si;
     double d_B4SOIgstot_dV_e_si;
     double d_B4SOIgstot_dTemp_t_GND;
     double d_B4SOIgstot_dV_p_GND;
     double d_B4SOIgstot_dV_b_GND;
    double B4SOIgdtot;
     double d_B4SOIgdtot_dV_gi_p;
     double d_B4SOIgdtot_dV_db_di;
     double d_B4SOIgdtot_dV_sb_si;
     double d_B4SOIgdtot_dV_b_si;
     double d_B4SOIgdtot_dV_di_si;
     double d_B4SOIgdtot_dV_gi_si;
     double d_B4SOIgdtot_dV_e_si;
     double d_B4SOIgdtot_dTemp_t_GND;
     double d_B4SOIgdtot_dV_p_GND;
     double d_B4SOIgdtot_dV_b_GND;
    double B4SOITempSH;
    double B4SOIgrgeltd;
    double B4SOIsourceConductance;
    double B4SOIdrainConductance;
    double B4SOIvfbzb;
    double B4SOIvtfbphi1;
    double B4SOIvgsteffvth;
    double B4SOIrbodyext;
    double B4SOIcsesw;
    double B4SOIcdesw;
    double B4SOIcsbox;
    double B4SOIcdbox;
    double B4SOIcsmin;
    double B4SOIcdmin;
    double B4SOIst4;
    double B4SOIdt4;
    double B4SOInstar;
    double B4SOIAbulk;
    double B4SOIqinv;
    double B4SOIgm;
    double B4SOIgds;
    double B4SOIgmbs;
    double B4SOIrds;
    double B4SOIVgsteff;
    double B4SOIVdseff;
    double B4SOIAbovVgst2Vtm;
    double B4SOIidovVds;
    double pParam_B4SOIcdsc;
    double pParam_B4SOIcdscb;
    double pParam_B4SOIcdscd;
    double pParam_B4SOIcit;
    double pParam_B4SOInfactor;
    double pParam_B4SOIvsat;
    double pParam_B4SOIat;
    double pParam_B4SOIa0;
    double pParam_B4SOIags;
    double pParam_B4SOIa1;
    double pParam_B4SOIa2;
    double pParam_B4SOIketa;
    double pParam_B4SOInpeak;
    double pParam_B4SOInsub;
    double pParam_B4SOIngate;
    double pParam_B4SOIgamma1;
    double pParam_B4SOIgamma2;
    double pParam_B4SOIvbx;
     double d_pParam_B4SOIvbx_dTemp_t_GND;
     double d_pParam_B4SOIvbx_dV_p_GND;
     double d_pParam_B4SOIvbx_dV_b_GND;
    double pParam_B4SOIvbi;
    double pParam_B4SOIvbm;
    double pParam_B4SOIxt;
    double pParam_B4SOIphi;
    double pParam_B4SOIlitl;
    double pParam_B4SOIk1;
     double d_pParam_B4SOIk1_dTemp_t_GND;
     double d_pParam_B4SOIk1_dV_p_GND;
     double d_pParam_B4SOIk1_dV_b_GND;
    double pParam_B4SOIkt1;
    double pParam_B4SOIkt1l;
    double pParam_B4SOIkt2;
    double pParam_B4SOIk2;
    double pParam_B4SOIk3;
    double pParam_B4SOIk3b;
    double pParam_B4SOIw0;
    double pParam_B4SOIlpe0;
    double pParam_B4SOIdvt0;
    double pParam_B4SOIdvt1;
    double pParam_B4SOIdvt2;
    double pParam_B4SOIdvt0w;
    double pParam_B4SOIdvt1w;
    double pParam_B4SOIdvt2w;
    double pParam_B4SOIdrout;
    double pParam_B4SOIdsub;
    double pParam_B4SOIua;
    double pParam_B4SOIua1;
    double pParam_B4SOIub;
    double pParam_B4SOIub1;
    double pParam_B4SOIuc;
    double pParam_B4SOIuc1;
    double pParam_B4SOIu0;
    double pParam_B4SOIute;
    double pParam_B4SOIud;
    double pParam_B4SOIud1;
    double pParam_B4SOIeu;
    double pParam_B4SOIucs;
    double pParam_B4SOIucste;
    double pParam_B4SOIvoff;
    double pParam_B4SOIvfb;
    double pParam_B4SOIuatemp;
    double pParam_B4SOIubtemp;
    double pParam_B4SOIuctemp;
    double pParam_B4SOIrbody;
    double pParam_B4SOIrth;
    double pParam_B4SOIcth;
    double pParam_B4SOIrds0denom;
    double pParam_B4SOIvfbb;
    double pParam_B4SOIjbjts;
    double pParam_B4SOIjbjtd;
    double pParam_B4SOIjdifs;
    double pParam_B4SOIjdifd;
    double pParam_B4SOIjrecs;
    double pParam_B4SOIjrecd;
    double pParam_B4SOIjtuns;
    double pParam_B4SOIjtund;
    double pParam_B4SOIrdw;
    double pParam_B4SOIrsw;
    double pParam_B4SOIrdwmin;
    double pParam_B4SOIrswmin;
    double pParam_B4SOIrd0;
    double pParam_B4SOIrs0;
    double pParam_B4SOIsdt1;
    double pParam_B4SOIst2;
    double pParam_B4SOIst3;
    double pParam_B4SOIdt2;
    double pParam_B4SOIdt3;
    double pParam_B4SOIdelta;
    double pParam_B4SOIrdsw;
    double pParam_B4SOIrds0;
    double pParam_B4SOIprwg;
    double pParam_B4SOIprwb;
    double pParam_B4SOIprt;
    double pParam_B4SOIeta0;
    double pParam_B4SOIetab;
    double pParam_B4SOIeta0cv;
    double pParam_B4SOIetabcv;
    double pParam_B4SOIpclm;
    double pParam_B4SOIpdibl1;
    double pParam_B4SOIpdibl2;
    double pParam_B4SOIpdiblb;
    double pParam_B4SOIpvag;
    double pParam_B4SOIdwg;
    double pParam_B4SOIdwb;
    double pParam_B4SOIb0;
    double pParam_B4SOIb1;
    double pParam_B4SOIalpha0;
    double pParam_B4SOIbeta0;
    double pParam_B4SOIaigc;
    double pParam_B4SOIbigc;
    double pParam_B4SOIcigc;
    double pParam_B4SOIaigsd;
    double pParam_B4SOIbigsd;
    double pParam_B4SOIcigsd;
    double pParam_B4SOInigc;
    double pParam_B4SOIpigcd;
    double pParam_B4SOIpoxedge;
    double pParam_B4SOIxrcrg1;
    double pParam_B4SOIxrcrg2;
    double pParam_B4SOIku0;
    double pParam_B4SOIinv_od_ref;
    double pParam_B4SOIcgsl;
    double pParam_B4SOIcgdl;
    double pParam_B4SOIckappa;
    double pParam_B4SOIclc;
    double pParam_B4SOIxj;
    double pParam_B4SOIalphaGB1;
    double pParam_B4SOIbetaGB1;
    double pParam_B4SOIalphaGB2;
    double pParam_B4SOIbetaGB2;
    double pParam_B4SOIaigbcp2;
    double pParam_B4SOIbigbcp2;
    double pParam_B4SOIcigbcp2;
    double pParam_B4SOIntrecf;
    double pParam_B4SOIntrecr;
    double pParam_B4SOIxbjt;
    double pParam_B4SOIxdif;
    double pParam_B4SOIxrec;
    double pParam_B4SOIxtun;
    double pParam_B4SOIxdifd;
    double pParam_B4SOIxrecd;
    double pParam_B4SOIxtund;
    double pParam_B4SOIkb1;
    double pParam_B4SOIk1w1;
    double pParam_B4SOIk1w2;
    double pParam_B4SOIketas;
    double pParam_B4SOIfbjtii;
    double pParam_B4SOIebjtii;
    double pParam_B4SOIcbjtii;
    double pParam_B4SOIvbci;
    double pParam_B4SOIabjtii;
    double pParam_B4SOImbjtii;
    double pParam_B4SOIbeta1;
    double pParam_B4SOIbeta2;
    double pParam_B4SOIvdsatii0;
    double pParam_B4SOIlii;
    double pParam_B4SOIesatii;
    double pParam_B4SOIsii0;
    double pParam_B4SOIsii1;
    double pParam_B4SOIsii2;
    double pParam_B4SOIsiid;
    double pParam_B4SOIagidl;
    double pParam_B4SOIbgidl;
    double pParam_B4SOIcgidl;
    double pParam_B4SOIegidl;
    double pParam_B4SOIrgidl;
    double pParam_B4SOIkgidl;
    double pParam_B4SOIfgidl;
    double pParam_B4SOIagisl;
    double pParam_B4SOIbgisl;
    double pParam_B4SOIcgisl;
    double pParam_B4SOIegisl;
    double pParam_B4SOIrgisl;
    double pParam_B4SOIkgisl;
    double pParam_B4SOIfgisl;
    double pParam_B4SOIntun;
    double pParam_B4SOIntund;
    double pParam_B4SOIndiode;
    double pParam_B4SOIndioded;
    double pParam_B4SOInrecf0;
    double pParam_B4SOInrecf0d;
    double pParam_B4SOInrecr0;
    double pParam_B4SOInrecr0d;
    double pParam_B4SOIisbjt;
    double pParam_B4SOIidbjt;
    double pParam_B4SOIisdif;
    double pParam_B4SOIiddif;
    double pParam_B4SOIisrec;
    double pParam_B4SOIidrec;
    double pParam_B4SOIistun;
    double pParam_B4SOIidtun;
    double pParam_B4SOIvrec0;
    double pParam_B4SOIvrec0d;
    double pParam_B4SOIvtun0;
    double pParam_B4SOIvtun0d;
    double pParam_B4SOIvsdfb;
    double pParam_B4SOIvsdth;
    double pParam_B4SOIdelvt;
    double pParam_B4SOIleff;
    double pParam_B4SOIweff;
    double pParam_B4SOIleffCV;
    double pParam_B4SOIweffCV;
    double pParam_B4SOIabulkCVfactor;
    double pParam_B4SOIcgso;
    double pParam_B4SOIcgdo;
    double pParam_B4SOIcgeo;
    double pParam_B4SOIu0temp;
    double pParam_B4SOIvsattemp;
    double pParam_B4SOIsqrtPhi;
    double pParam_B4SOIXdep0;
    double pParam_B4SOItheta0vb0;
    double pParam_B4SOIthetaRout;
    double pParam_B4SOIqsi;
    double pParam_B4SOIoxideRatio;
    double pParam_B4SOIk1eff;
     double d_pParam_B4SOIk1eff_dTemp_t_GND;
     double d_pParam_B4SOIk1eff_dV_p_GND;
     double d_pParam_B4SOIk1eff_dV_b_GND;
    double pParam_B4SOIwdios;
    double pParam_B4SOIwdiod;
    double pParam_B4SOIwdiodCV;
    double pParam_B4SOIwdiosCV;
    double pParam_B4SOIarfabjt;
    double pParam_B4SOIlratio;
    double pParam_B4SOIlratiodif;
    double pParam_B4SOIvearly;
    double pParam_B4SOIahli;
    double pParam_B4SOIahlid;
    double pParam_B4SOIahli0s;
    double pParam_B4SOIahli0d;
    double pParam_B4SOIldeb;
    double pParam_B4SOIacde;
    double pParam_B4SOImoin;
    double pParam_B4SOInoff;
    double pParam_B4SOIleffCVb;
    double pParam_B4SOIleffCVbg;
    double pParam_B4SOIcdep0;
    double pParam_B4SOIAechvb;
    double pParam_B4SOIBechvb;
    double pParam_B4SOIAechvbEdges;
    double pParam_B4SOIAechvbEdged;
    double pParam_B4SOIBechvbEdge;
    double pParam_B4SOIvfbsd;
    double pParam_B4SOIk1ox;
    double pParam_B4SOIlpeb;
    double pParam_B4SOIdvtp0;
    double pParam_B4SOIdvtp1;
    double pParam_B4SOIdvtp4;
    double pParam_B4SOImstar;
    double pParam_B4SOIfprout;
    double pParam_B4SOIpdits;
    double pParam_B4SOIpditsd;
    double pParam_B4SOImstarcv;
    double pParam_B4SOIvoffcv;
    double pParam_B4SOIdvtp2factor;
    double B4SOIcbox;
    double B4SOIcsi;
    double B4SOIeg0;
    double B4SOIeg;
    double B4SOIcox;
    double B4SOIfactor1;
    int B4SOImode;
    int B4SOIbodyMod;
    double here_B4SOIeta0;
    double here_B4SOIeta0cv;
    double here_B4SOIk2;
     double d_here_B4SOIk2_dTemp_t_GND;
     double d_here_B4SOIk2_dV_p_GND;
     double d_here_B4SOIk2_dV_b_GND;
    double here_B4SOIk2ox;
    double here_B4SOIu0temp;
    double here_B4SOIvfb;
     double d_here_B4SOIvfb_dTemp_t_GND;
     double d_here_B4SOIvfb_dV_p_GND;
     double d_here_B4SOIvfb_dV_b_GND;
    double here_B4SOIvsattemp;
    double here_B4SOIvth0;
     double d_here_B4SOIvth0_dTemp_t_GND;
     double d_here_B4SOIvth0_dV_p_GND;
     double d_here_B4SOIvth0_dV_b_GND;
    double DevTemp;
     double d_DevTemp_dTemp_t_GND;
     double d_DevTemp_dV_p_GND;
     double d_DevTemp_dV_b_GND;
    double fourkt;
    double gdnoise;
    double gsnoise;
    double toxe;
    double epsrox;
    double epssub;
    double sqrt2qeps;
    double eggbcp2;
    double eggdep;
    double Vtm00;
    double agb1;
    double bgb1;
    double agb2;
    double bgb2;
    double agbc2n;
    double agbc2p;
    double bgbc2n;
    double bgbc2p;
    // end verilog Instance Variables=====
    // Nodal LID Variables
    int li_d;
    int li_g;
    int li_s;
    int li_e;
    int li_p;
    int li_b;
    int li_t;
    int li_di;
    int li_si;
    int li_gi;
    int li_gm;
    int li_sb;
    int li_db;
    // end Nodal LID Variables
    // Branch LID Variables
    // end Branch LID Variables
    // Lead (branch) LID Variables
    int li_branch_id;
    int li_branch_ig;
    int li_branch_is;
    int li_branch_ie;
    int li_branch_ip;
    int li_branch_ib;
    int li_branch_it;
    // end Lead (branch) LID Variables
    // Jacobian  pointers
    double * f_di_Equ_sb_Node_Ptr;
    double * f_di_Equ_si_Node_Ptr;
    double * f_si_Equ_sb_Node_Ptr;
    double * f_si_Equ_si_Node_Ptr;
    double * f_di_Equ_db_Node_Ptr;
    double * f_di_Equ_di_Node_Ptr;
    double * f_si_Equ_db_Node_Ptr;
    double * f_si_Equ_di_Node_Ptr;
    double * f_di_Equ_gi_Node_Ptr;
    double * f_di_Equ_p_Node_Ptr;
    double * f_si_Equ_gi_Node_Ptr;
    double * f_si_Equ_p_Node_Ptr;
    double * f_di_Equ_e_Node_Ptr;
    double * f_si_Equ_e_Node_Ptr;
    double * f_di_Equ_b_Node_Ptr;
    double * f_si_Equ_b_Node_Ptr;
    double * f_di_Equ_t_Node_Ptr;
    double * f_si_Equ_t_Node_Ptr;
    double * f_di_Equ_gm_Node_Ptr;
    double * f_si_Equ_gm_Node_Ptr;
    double * f_d_Equ_b_Node_Ptr;
    double * f_d_Equ_p_Node_Ptr;
    double * f_d_Equ_t_Node_Ptr;
    double * f_d_Equ_e_Node_Ptr;
    double * f_d_Equ_si_Node_Ptr;
    double * f_d_Equ_gi_Node_Ptr;
    double * f_d_Equ_di_Node_Ptr;
    double * f_d_Equ_sb_Node_Ptr;
    double * f_d_Equ_db_Node_Ptr;
    double * f_d_Equ_d_Node_Ptr;
    double * f_di_Equ_d_Node_Ptr;
    double * f_s_Equ_b_Node_Ptr;
    double * f_s_Equ_p_Node_Ptr;
    double * f_s_Equ_t_Node_Ptr;
    double * f_s_Equ_e_Node_Ptr;
    double * f_s_Equ_si_Node_Ptr;
    double * f_s_Equ_gi_Node_Ptr;
    double * f_s_Equ_di_Node_Ptr;
    double * f_s_Equ_sb_Node_Ptr;
    double * f_s_Equ_db_Node_Ptr;
    double * f_s_Equ_s_Node_Ptr;
    double * f_si_Equ_s_Node_Ptr;
    double * f_b_Equ_gi_Node_Ptr;
    double * f_b_Equ_si_Node_Ptr;
    double * f_b_Equ_e_Node_Ptr;
    double * f_b_Equ_b_Node_Ptr;
    double * f_b_Equ_sb_Node_Ptr;
    double * f_b_Equ_db_Node_Ptr;
    double * f_b_Equ_di_Node_Ptr;
    double * f_b_Equ_p_Node_Ptr;
    double * f_b_Equ_t_Node_Ptr;
    double * f_db_Equ_b_Node_Ptr;
    double * f_db_Equ_p_Node_Ptr;
    double * f_db_Equ_t_Node_Ptr;
    double * f_db_Equ_e_Node_Ptr;
    double * f_db_Equ_si_Node_Ptr;
    double * f_db_Equ_gi_Node_Ptr;
    double * f_db_Equ_di_Node_Ptr;
    double * f_db_Equ_sb_Node_Ptr;
    double * f_db_Equ_db_Node_Ptr;
    double * f_sb_Equ_b_Node_Ptr;
    double * f_sb_Equ_p_Node_Ptr;
    double * f_sb_Equ_t_Node_Ptr;
    double * f_sb_Equ_e_Node_Ptr;
    double * f_sb_Equ_si_Node_Ptr;
    double * f_sb_Equ_gi_Node_Ptr;
    double * f_sb_Equ_di_Node_Ptr;
    double * f_sb_Equ_sb_Node_Ptr;
    double * f_sb_Equ_db_Node_Ptr;
    double * f_gi_Equ_sb_Node_Ptr;
    double * f_gi_Equ_si_Node_Ptr;
    double * f_gi_Equ_db_Node_Ptr;
    double * f_gi_Equ_di_Node_Ptr;
    double * f_gi_Equ_b_Node_Ptr;
    double * f_gi_Equ_p_Node_Ptr;
    double * f_gi_Equ_t_Node_Ptr;
    double * f_gi_Equ_e_Node_Ptr;
    double * f_gi_Equ_gi_Node_Ptr;
    double * f_p_Equ_gi_Node_Ptr;
    double * f_p_Equ_p_Node_Ptr;
    double * f_p_Equ_b_Node_Ptr;
    double * f_p_Equ_t_Node_Ptr;
    double * f_p_Equ_si_Node_Ptr;
    double * f_p_Equ_di_Node_Ptr;
    double * f_p_Equ_e_Node_Ptr;
    double * f_p_Equ_sb_Node_Ptr;
    double * f_p_Equ_db_Node_Ptr;
    double * f_e_Equ_b_Node_Ptr;
    double * f_e_Equ_si_Node_Ptr;
    double * f_e_Equ_gi_Node_Ptr;
    double * f_e_Equ_p_Node_Ptr;
    double * f_e_Equ_t_Node_Ptr;
    double * f_e_Equ_e_Node_Ptr;
    double * f_e_Equ_di_Node_Ptr;
    double * f_gm_Equ_gm_Node_Ptr;
    double * f_gm_Equ_si_Node_Ptr;
    double * f_gm_Equ_b_Node_Ptr;
    double * f_gm_Equ_p_Node_Ptr;
    double * f_gm_Equ_t_Node_Ptr;
    double * f_gm_Equ_gi_Node_Ptr;
    double * f_gm_Equ_di_Node_Ptr;
    double * f_gm_Equ_e_Node_Ptr;
    double * f_gm_Equ_sb_Node_Ptr;
    double * f_gm_Equ_db_Node_Ptr;
    double * f_e_Equ_gm_Node_Ptr;
    double * f_gi_Equ_gm_Node_Ptr;
    double * f_e_Equ_sb_Node_Ptr;
    double * f_e_Equ_db_Node_Ptr;
    double * f_g_Equ_g_Node_Ptr;
    double * f_g_Equ_gm_Node_Ptr;
    double * f_gm_Equ_g_Node_Ptr;
    double * f_g_Equ_b_Node_Ptr;
    double * f_g_Equ_p_Node_Ptr;
    double * f_g_Equ_t_Node_Ptr;
    double * f_t_Equ_gi_Node_Ptr;
    double * f_t_Equ_si_Node_Ptr;
    double * f_t_Equ_di_Node_Ptr;
    double * f_t_Equ_e_Node_Ptr;
    double * f_t_Equ_b_Node_Ptr;
    double * f_t_Equ_p_Node_Ptr;
    double * f_t_Equ_t_Node_Ptr;
    double * q_di_Equ_sb_Node_Ptr;
    double * q_di_Equ_si_Node_Ptr;
    double * q_si_Equ_sb_Node_Ptr;
    double * q_si_Equ_si_Node_Ptr;
    double * q_di_Equ_db_Node_Ptr;
    double * q_di_Equ_di_Node_Ptr;
    double * q_si_Equ_db_Node_Ptr;
    double * q_si_Equ_di_Node_Ptr;
    double * q_di_Equ_gi_Node_Ptr;
    double * q_di_Equ_p_Node_Ptr;
    double * q_si_Equ_gi_Node_Ptr;
    double * q_si_Equ_p_Node_Ptr;
    double * q_di_Equ_e_Node_Ptr;
    double * q_si_Equ_e_Node_Ptr;
    double * q_di_Equ_b_Node_Ptr;
    double * q_si_Equ_b_Node_Ptr;
    double * q_di_Equ_t_Node_Ptr;
    double * q_si_Equ_t_Node_Ptr;
    double * q_di_Equ_gm_Node_Ptr;
    double * q_si_Equ_gm_Node_Ptr;
    double * q_d_Equ_b_Node_Ptr;
    double * q_d_Equ_p_Node_Ptr;
    double * q_d_Equ_t_Node_Ptr;
    double * q_d_Equ_e_Node_Ptr;
    double * q_d_Equ_si_Node_Ptr;
    double * q_d_Equ_gi_Node_Ptr;
    double * q_d_Equ_di_Node_Ptr;
    double * q_d_Equ_sb_Node_Ptr;
    double * q_d_Equ_db_Node_Ptr;
    double * q_d_Equ_d_Node_Ptr;
    double * q_di_Equ_d_Node_Ptr;
    double * q_s_Equ_b_Node_Ptr;
    double * q_s_Equ_p_Node_Ptr;
    double * q_s_Equ_t_Node_Ptr;
    double * q_s_Equ_e_Node_Ptr;
    double * q_s_Equ_si_Node_Ptr;
    double * q_s_Equ_gi_Node_Ptr;
    double * q_s_Equ_di_Node_Ptr;
    double * q_s_Equ_sb_Node_Ptr;
    double * q_s_Equ_db_Node_Ptr;
    double * q_s_Equ_s_Node_Ptr;
    double * q_si_Equ_s_Node_Ptr;
    double * q_b_Equ_gi_Node_Ptr;
    double * q_b_Equ_si_Node_Ptr;
    double * q_b_Equ_e_Node_Ptr;
    double * q_b_Equ_b_Node_Ptr;
    double * q_b_Equ_sb_Node_Ptr;
    double * q_b_Equ_db_Node_Ptr;
    double * q_b_Equ_di_Node_Ptr;
    double * q_b_Equ_p_Node_Ptr;
    double * q_b_Equ_t_Node_Ptr;
    double * q_db_Equ_b_Node_Ptr;
    double * q_db_Equ_p_Node_Ptr;
    double * q_db_Equ_t_Node_Ptr;
    double * q_db_Equ_e_Node_Ptr;
    double * q_db_Equ_si_Node_Ptr;
    double * q_db_Equ_gi_Node_Ptr;
    double * q_db_Equ_di_Node_Ptr;
    double * q_db_Equ_sb_Node_Ptr;
    double * q_db_Equ_db_Node_Ptr;
    double * q_sb_Equ_b_Node_Ptr;
    double * q_sb_Equ_p_Node_Ptr;
    double * q_sb_Equ_t_Node_Ptr;
    double * q_sb_Equ_e_Node_Ptr;
    double * q_sb_Equ_si_Node_Ptr;
    double * q_sb_Equ_gi_Node_Ptr;
    double * q_sb_Equ_di_Node_Ptr;
    double * q_sb_Equ_sb_Node_Ptr;
    double * q_sb_Equ_db_Node_Ptr;
    double * q_gi_Equ_sb_Node_Ptr;
    double * q_gi_Equ_si_Node_Ptr;
    double * q_gi_Equ_db_Node_Ptr;
    double * q_gi_Equ_di_Node_Ptr;
    double * q_gi_Equ_b_Node_Ptr;
    double * q_gi_Equ_p_Node_Ptr;
    double * q_gi_Equ_t_Node_Ptr;
    double * q_gi_Equ_e_Node_Ptr;
    double * q_gi_Equ_gi_Node_Ptr;
    double * q_p_Equ_gi_Node_Ptr;
    double * q_p_Equ_p_Node_Ptr;
    double * q_p_Equ_b_Node_Ptr;
    double * q_p_Equ_t_Node_Ptr;
    double * q_p_Equ_si_Node_Ptr;
    double * q_p_Equ_di_Node_Ptr;
    double * q_p_Equ_e_Node_Ptr;
    double * q_p_Equ_sb_Node_Ptr;
    double * q_p_Equ_db_Node_Ptr;
    double * q_e_Equ_b_Node_Ptr;
    double * q_e_Equ_si_Node_Ptr;
    double * q_e_Equ_gi_Node_Ptr;
    double * q_e_Equ_p_Node_Ptr;
    double * q_e_Equ_t_Node_Ptr;
    double * q_e_Equ_e_Node_Ptr;
    double * q_e_Equ_di_Node_Ptr;
    double * q_gm_Equ_gm_Node_Ptr;
    double * q_gm_Equ_si_Node_Ptr;
    double * q_gm_Equ_b_Node_Ptr;
    double * q_gm_Equ_p_Node_Ptr;
    double * q_gm_Equ_t_Node_Ptr;
    double * q_gm_Equ_gi_Node_Ptr;
    double * q_gm_Equ_di_Node_Ptr;
    double * q_gm_Equ_e_Node_Ptr;
    double * q_gm_Equ_sb_Node_Ptr;
    double * q_gm_Equ_db_Node_Ptr;
    double * q_e_Equ_gm_Node_Ptr;
    double * q_gi_Equ_gm_Node_Ptr;
    double * q_e_Equ_sb_Node_Ptr;
    double * q_e_Equ_db_Node_Ptr;
    double * q_g_Equ_g_Node_Ptr;
    double * q_g_Equ_gm_Node_Ptr;
    double * q_gm_Equ_g_Node_Ptr;
    double * q_g_Equ_b_Node_Ptr;
    double * q_g_Equ_p_Node_Ptr;
    double * q_g_Equ_t_Node_Ptr;
    double * q_t_Equ_gi_Node_Ptr;
    double * q_t_Equ_si_Node_Ptr;
    double * q_t_Equ_di_Node_Ptr;
    double * q_t_Equ_e_Node_Ptr;
    double * q_t_Equ_b_Node_Ptr;
    double * q_t_Equ_p_Node_Ptr;
    double * q_t_Equ_t_Node_Ptr;
    // Jacobian offsets
    int A_di_Equ_sb_NodeOffset;
    int A_di_Equ_si_NodeOffset;
    int A_si_Equ_sb_NodeOffset;
    int A_si_Equ_si_NodeOffset;
    int A_di_Equ_db_NodeOffset;
    int A_di_Equ_di_NodeOffset;
    int A_si_Equ_db_NodeOffset;
    int A_si_Equ_di_NodeOffset;
    int A_di_Equ_gi_NodeOffset;
    int A_di_Equ_p_NodeOffset;
    int A_si_Equ_gi_NodeOffset;
    int A_si_Equ_p_NodeOffset;
    int A_di_Equ_e_NodeOffset;
    int A_si_Equ_e_NodeOffset;
    int A_di_Equ_b_NodeOffset;
    int A_si_Equ_b_NodeOffset;
    int A_di_Equ_t_NodeOffset;
    int A_si_Equ_t_NodeOffset;
    int A_di_Equ_gm_NodeOffset;
    int A_si_Equ_gm_NodeOffset;
    int A_d_Equ_b_NodeOffset;
    int A_d_Equ_p_NodeOffset;
    int A_d_Equ_t_NodeOffset;
    int A_d_Equ_e_NodeOffset;
    int A_d_Equ_si_NodeOffset;
    int A_d_Equ_gi_NodeOffset;
    int A_d_Equ_di_NodeOffset;
    int A_d_Equ_sb_NodeOffset;
    int A_d_Equ_db_NodeOffset;
    int A_d_Equ_d_NodeOffset;
    int A_di_Equ_d_NodeOffset;
    int A_s_Equ_b_NodeOffset;
    int A_s_Equ_p_NodeOffset;
    int A_s_Equ_t_NodeOffset;
    int A_s_Equ_e_NodeOffset;
    int A_s_Equ_si_NodeOffset;
    int A_s_Equ_gi_NodeOffset;
    int A_s_Equ_di_NodeOffset;
    int A_s_Equ_sb_NodeOffset;
    int A_s_Equ_db_NodeOffset;
    int A_s_Equ_s_NodeOffset;
    int A_si_Equ_s_NodeOffset;
    int A_b_Equ_gi_NodeOffset;
    int A_b_Equ_si_NodeOffset;
    int A_b_Equ_e_NodeOffset;
    int A_b_Equ_b_NodeOffset;
    int A_b_Equ_sb_NodeOffset;
    int A_b_Equ_db_NodeOffset;
    int A_b_Equ_di_NodeOffset;
    int A_b_Equ_p_NodeOffset;
    int A_b_Equ_t_NodeOffset;
    int A_db_Equ_b_NodeOffset;
    int A_db_Equ_p_NodeOffset;
    int A_db_Equ_t_NodeOffset;
    int A_db_Equ_e_NodeOffset;
    int A_db_Equ_si_NodeOffset;
    int A_db_Equ_gi_NodeOffset;
    int A_db_Equ_di_NodeOffset;
    int A_db_Equ_sb_NodeOffset;
    int A_db_Equ_db_NodeOffset;
    int A_sb_Equ_b_NodeOffset;
    int A_sb_Equ_p_NodeOffset;
    int A_sb_Equ_t_NodeOffset;
    int A_sb_Equ_e_NodeOffset;
    int A_sb_Equ_si_NodeOffset;
    int A_sb_Equ_gi_NodeOffset;
    int A_sb_Equ_di_NodeOffset;
    int A_sb_Equ_sb_NodeOffset;
    int A_sb_Equ_db_NodeOffset;
    int A_gi_Equ_sb_NodeOffset;
    int A_gi_Equ_si_NodeOffset;
    int A_gi_Equ_db_NodeOffset;
    int A_gi_Equ_di_NodeOffset;
    int A_gi_Equ_b_NodeOffset;
    int A_gi_Equ_p_NodeOffset;
    int A_gi_Equ_t_NodeOffset;
    int A_gi_Equ_e_NodeOffset;
    int A_gi_Equ_gi_NodeOffset;
    int A_p_Equ_gi_NodeOffset;
    int A_p_Equ_p_NodeOffset;
    int A_p_Equ_b_NodeOffset;
    int A_p_Equ_t_NodeOffset;
    int A_p_Equ_si_NodeOffset;
    int A_p_Equ_di_NodeOffset;
    int A_p_Equ_e_NodeOffset;
    int A_p_Equ_sb_NodeOffset;
    int A_p_Equ_db_NodeOffset;
    int A_e_Equ_b_NodeOffset;
    int A_e_Equ_si_NodeOffset;
    int A_e_Equ_gi_NodeOffset;
    int A_e_Equ_p_NodeOffset;
    int A_e_Equ_t_NodeOffset;
    int A_e_Equ_e_NodeOffset;
    int A_e_Equ_di_NodeOffset;
    int A_gm_Equ_gm_NodeOffset;
    int A_gm_Equ_si_NodeOffset;
    int A_gm_Equ_b_NodeOffset;
    int A_gm_Equ_p_NodeOffset;
    int A_gm_Equ_t_NodeOffset;
    int A_gm_Equ_gi_NodeOffset;
    int A_gm_Equ_di_NodeOffset;
    int A_gm_Equ_e_NodeOffset;
    int A_gm_Equ_sb_NodeOffset;
    int A_gm_Equ_db_NodeOffset;
    int A_e_Equ_gm_NodeOffset;
    int A_gi_Equ_gm_NodeOffset;
    int A_e_Equ_sb_NodeOffset;
    int A_e_Equ_db_NodeOffset;
    int A_g_Equ_g_NodeOffset;
    int A_g_Equ_gm_NodeOffset;
    int A_gm_Equ_g_NodeOffset;
    int A_g_Equ_b_NodeOffset;
    int A_g_Equ_p_NodeOffset;
    int A_g_Equ_t_NodeOffset;
    int A_t_Equ_gi_NodeOffset;
    int A_t_Equ_si_NodeOffset;
    int A_t_Equ_di_NodeOffset;
    int A_t_Equ_e_NodeOffset;
    int A_t_Equ_b_NodeOffset;
    int A_t_Equ_p_NodeOffset;
    int A_t_Equ_t_NodeOffset;
    // end of Jacobian and pointers
   // node numbers
    static const int admsNodeID_d = 0;
    static const int admsNodeID_g = 1;
    static const int admsNodeID_s = 2;
    static const int admsNodeID_e = 3;
// optional node p:
    static const int admsNodeID_p = 4;
// optional node b:
    static const int admsNodeID_b = 5;
// optional node t:
    static const int admsNodeID_t = 6;
    static const int admsNodeID_di = 0+7;
    static const int admsNodeID_si = 1+7;
    static const int admsNodeID_gi = 2+7;
    static const int admsNodeID_gm = 3+7;
    static const int admsNodeID_sb = 4+7;
    static const int admsNodeID_db = 5+7;
    static const int admsNodeID_GND = -1;
   // end node numbers
   // Additional IDs for branch equations
   // end branch numbers
   // Probe numbers
    static const int admsProbeID_V_sb_GND = 0;
    static const int admsProbeID_V_db_GND = 1;
    static const int admsProbeID_V_b_sb = 2;
    static const int admsProbeID_V_b_db = 3;
    static const int admsProbeID_V_gm_gi = 4;
    static const int admsProbeID_V_g_gm = 5;
    static const int admsProbeID_V_gi_e = 6;
    static const int admsProbeID_V_gm_e = 7;
    static const int admsProbeID_V_s_si = 8;
    static const int admsProbeID_V_d_di = 9;
    static const int admsProbeID_V_si_GND = 10;
    static const int admsProbeID_V_di_GND = 11;
    static const int admsProbeID_V_gi_GND = 12;
    static const int admsProbeID_V_gm_si = 13;
    static const int admsProbeID_V_db_di = 14;
    static const int admsProbeID_V_sb_si = 15;
    static const int admsProbeID_V_gi_p = 16;
    static const int admsProbeID_V_b_p = 17;
    static const int admsProbeID_V_e_si = 18;
    static const int admsProbeID_V_gi_si = 19;
    static const int admsProbeID_V_b_si = 20;
    static const int admsProbeID_V_di_si = 21;
    static const int admsProbeID_Temp_t_GND = 22;
    static const int admsProbeID_V_p_GND = 23;
    static const int admsProbeID_V_b_GND = 24;
   // end probe numbers
   // Store LIDs
   // end store LIDs
   // Store LIDs for output vars
    int li_store_VDSAT;
    int li_store_VTH;
    int li_store_IDS;
    int li_store_GM;
    int li_store_GDS;
    int li_store_GMBS;
    int li_store_IC;
    int li_store_IBD;
    int li_store_IBS;
    int li_store_IGIDL;
    int li_store_IGISL;
    int li_store_IGS;
    int li_store_IGD;
    int li_store_IGB;
    int li_store_IGCS;
    int li_store_IGCD;
    int li_store_CGG;
    int li_store_CGS;
    int li_store_CGD;
    int li_store_CBG;
    int li_store_CBD;
    int li_store_CBS;
    int li_store_CDG;
    int li_store_CDD;
    int li_store_CDS;
    int li_store_CAPBD;
    int li_store_CAPBS;
    int li_store_QG;
    int li_store_QB;
    int li_store_QD;
    int li_store_QS;
    int li_store_QJD;
    int li_store_QJS;
   // end store LIDs for output vars
     // bools for collapsing nodes
     bool collapseNode_p;
     bool collapseNode_b;
     bool collapseNode_t;
     bool collapseNode_di;
     bool collapseNode_si;
     bool collapseNode_gi;
     bool collapseNode_gm;
     bool collapseNode_sb;
     bool collapseNode_db;
 // Arrays to hold probes
 std::vector < double > probeVars;
 std::vector < std::vector < double > > d_probeVars;
 // Arrays to hold contributions
 // dynamic contributions are differentiated w.r.t time
 std::vector < double > staticContributions;
 std::vector < std::vector < double > > d_staticContributions;
 std::vector < double > dynamicContributions;
 std::vector < std::vector < double > > d_dynamicContributions;
//vectors to hold noise information for communication between methods
std::vector<double> noiseContribsPower;
std::vector<double> noiseContribsExponent;


    // this is what we'll use when any model uses $temperature.  We'll
    // set it in updateTemperature, and initialize it to whatever
    // is in devOptions when the instance is constructed.
    double admsTemperature;

    // vt at $temperature;
    double adms_vt_nom;


    // This one is for the annoying bogus "XyceADMSInstTemp" parameter
    // that we need so we can set it from the device manager when there's no
    // "TEMP" parameter to use
    double admsInstTemp;


    JacobianStamp jacStamp;
    IdVector nodeMap;
    PairMap pairToJacStampMap;

    // These instance-owned vectors are for storage of lead current data
    std::vector<double> leadCurrentF;
    std::vector<double> leadCurrentQ;

      std::vector<bool> portsConnected_;

    };



namespace AnalogFunctions
{

      // Analog Function hypsmooth
double hypsmooth(double x, double c);
// Derivative of Analog Function hypsmooth
double d_hypsmooth(double x , double c  , double d_x  , double d_c  );
// Evaluator class for Analog Function hypsmooth
class hypsmoothEvaluator
{
  struct returnType
  {
     double value;
     double deriv_WRT_x;
     double deriv_WRT_c;
  };
public:
  // constructor takes all same arguments as regular templated function,
  // even though it doesn't USE the output args
  hypsmoothEvaluator(double x, double c);
  // function that returns the precomputed values.  This, too, takes
  // all the same arguments as the regular function, though it ONLY
  // uses the output arguments
  double getValues(double  x, double  c);
  // function that returns the total derivative of the function and its
  // output arguments with respect to some variable.  We pass in the
  // normal arguments(none of which are used) and the derivatives of those
  // arguments with respect to the desired variable.  We compute the
  // derivatives using the chain rule and our precomputed derivatives
  // with respect to input variables
double getDerivs(double x , double c  , double d_x, double d_c);
private:
  returnType hypsmoothReturn_;
  returnType evaluator_(double x, double c);
};

}


//-----------------------------------------------------------------------------
// Class         : Model

// Purpose       :
// Special Notes :
// Creator       :
// Creation Date :
//-----------------------------------------------------------------------------
class Model : public DeviceModel
{
    typedef std::vector<Instance *> InstanceVector;

    friend class ParametricData<Model>;
    friend class Instance;
#ifdef Xyce_ADMS_SENSITIVITIES
    friend class InstanceSensitivity;
    friend class ModelSensitivity;
#endif // Xyce_ADMS_SENSITIVITIES
    friend struct Traits;

  public:
    Model(
      const Configuration &       configuration,
      const ModelBlock &          model_block,
      const FactoryBlock &        factory_block);

    ~Model();

private:
    Model(const Model &);
    Model &operator=(const Model &);

public:
    virtual void forEachInstance(DeviceInstanceOp &op) const /* override */;
    virtual std::ostream &printOutInstances(std::ostream &os) const;
    bool processParams();
    bool processInstanceParams();

  private:

  public:
    void addInstance(Instance *instance)
    {
      instanceContainer.push_back(instance);
    }

    void setupBaseInstanceContainer()
    {
      std::vector<Instance*>::iterator iter = instanceContainer.begin();
      std::vector<Instance*>::iterator end   = instanceContainer.end();
      for ( ; iter!=end; ++iter)
      {
      Xyce::Device::DeviceModel::baseInstanceContainer.push_back( static_cast<Xyce::Device::DeviceInstance *>(*iter) );
    }
  }

  private:
    std::vector<Instance*> instanceContainer;

  private:

    // This one is for the annoying bogus "XyceADMSInstTemp" parameter
    // that we need so we can set it from the device manager when there's no
    // "TEMP" model parameter to use
    double admsModTemp;
// Begin verilog Model Variables
//   Model Parameters
    int TYPE;
    double VERSION;
    double L;
    double W;
    double NF;
    double SA;
    double SB;
    double SD;
    double AD;
    double AS;
    double PD;
    double PS;
    double NRD;
    double NRS;
    int OFF;
    int BJTOFF;
    int DEBUG;
    double RTH0;
    double CTH0;
    double NRB;
    double FRBODY;
    double RBDB;
    double RBSB;
    double DELVTO;
    int SOIMOD;
    double NBC;
    double NSEG;
    double PDBCP;
    double PSBCP;
    double AGBCP;
    double AGBCP2;
    double AGBCPD;
    double AEBCP;
    double VBSUSR;
    int RGATEMOD;
    int RBODYMOD;
    int MTRLMOD;
    int VGSTCVMOD;
    int GIDLMOD;
    int IIIMOD;
    double EOT;
    double EPSROX;
    double EPSRSUB;
    double NI0SUB;
    double BG0SUB;
    double TBGASUB;
    double TBGBSUB;
    double PHIG;
    double EASUB;
    double LEFFEOT;
    double WEFFEOT;
    double VDDEOT;
    double TEMPEOT;
    double ADOS;
    double BDOS;
    double EPSRGATE;
    int CAPMOD;
    int MOBMOD;
    int PARAMCHK;
    int BINUNIT;
    double TOX;
    double TOXP;
    double TOXM;
    double DTOXCV;
    double CDSC;
    double CDSCB;
    double CDSCD;
    double CIT;
    double NFACTOR;
    double VSAT;
    double AT;
    double A0;
    double AGS;
    double A1;
    double A2;
    double KETA;
    double NSUB;
    double NCH;
    double NGATE;
    double NSD;
    double GAMMA1;
    double GAMMA2;
    double VBX;
    double VBM;
    double XT;
    double K1;
    double KT1;
    double KT1L;
    double KT2;
    double K2;
    double K3;
    double K3B;
    double W0;
    double LPEB;
    double DVT0;
    double DVT1;
    double DVT2;
    double DVT0W;
    double DVT1W;
    double DVT2W;
    double DROUT;
    double DSUB;
    double VTHO;
    double VTH0;
    double VFB;
    double UA;
    double UA1;
    double UB;
    double UB1;
    double UC;
    double UC1;
    double U0;
    double EU;
    double UTE;
    double UCS;
    double UCSTE;
    double UD;
    double UD1;
    double VOFF;
    double TNOM;
    double CGSO;
    double CGDO;
    double XPART;
    double DELTA;
    double RSH;
    double RDSW;
    double RSW;
    double RDW;
    double RSWMIN;
    double RDWMIN;
    double PRWG;
    double PRWB;
    double PRT;
    double ETA0;
    double ETAB;
    double ETA0CV;
    double ETABCV;
    double PCLM;
    double PDIBLC1;
    double PDIBLC2;
    double PDIBLCB;
    double PVAG;
    int SHMOD;
    double TBOX;
    double TSI;
    double ETSI;
    double XJ;
    double AGIDL;
    double BGIDL;
    double CGIDL;
    double RGIDL;
    double KGIDL;
    double FGIDL;
    double AGISL;
    double BGISL;
    double CGISL;
    double RGISL;
    double KGISL;
    double FGISL;
    double NDIODE;
    double NDIODED;
    double XBJT;
    double XDIF;
    double XREC;
    double XTUN;
    double XDIFD;
    double XRECD;
    double XTUND;
    double PBSWG;
    double PBSWGD;
    double MJSWG;
    double MJSWGD;
    double CJSWG;
    double CJSWGD;
    double LINT;
    double LL;
    double LLC;
    double LLN;
    double LW;
    double LWC;
    double LWN;
    double LWL;
    double LWLC;
    double WR;
    double WINT;
    double DWG;
    double DWB;
    double WL;
    double WLC;
    double WLN;
    double WW;
    double WWC;
    double WWN;
    double WWL;
    double WWLC;
    double B0;
    double B1;
    double CGSL;
    double CGDL;
    double CKAPPA;
    double CF;
    double CLC;
    double CLE;
    double DWC;
    double DLC;
    double ALPHA0;
    double NOIA;
    double NOIB;
    double NOIC;
    int FNOIMOD;
    int TNOIMOD;
    double TNOIA;
    double TNOIB;
    double RNOIA;
    double RNOIB;
    double NTNOI;
    double SAREF;
    double SBREF;
    double WLOD;
    double KU0;
    double KVSAT;
    double KVTH0;
    double TKU0;
    double LLODKU0;
    double WLODKU0;
    double LLODVTH;
    double WLODVTH;
    double LKU0;
    double WKU0;
    double PKU0;
    double LKVTH0;
    double WKVTH0;
    double PKVTH0;
    double STK2;
    double LODK2;
    double STETA0;
    double LODETA0;
    double STETA0CV;
    double LODETA0CV;
    double GBMIN;
    double BF;
    double W0FLK;
    double DVTP0;
    double LDVTP0;
    double WDVTP0;
    double PDVTP0;
    double DVTP1;
    double LDVTP1;
    double WDVTP1;
    double PDVTP1;
    double DVTP2;
    double LDVTP2;
    double WDVTP2;
    double PDVTP2;
    double DVTP3;
    double LDVTP3;
    double WDVTP3;
    double PDVTP3;
    double DVTP4;
    double LDVTP4;
    double WDVTP4;
    double PDVTP4;
    double MINV;
    double LMINV;
    double WMINV;
    double PMINV;
    double PDITS;
    double PDITSL;
    double PDITSD;
    double FPROUT;
    double LFPROUT;
    double LPDITS;
    double LPDITSD;
    double WFPROUT;
    double WPDITS;
    double WPDITSD;
    double PFPROUT;
    double PPDITS;
    double PPDITSD;
    double EM;
    double EF;
    double AF;
    double KF;
    double NOIF;
    double K1W1;
    double K1W2;
    double KETAS;
    double DWBC;
    double BETA0;
    double BETA1;
    double BETA2;
    double VDSATII0;
    double TII;
    double LII;
    double SII0;
    double SII1;
    double SII2;
    double SIID;
    double FBJTII;
    double EBJTII;
    double CBJTII;
    double VBCI;
    double ABJTII;
    double MBJTII;
    double TVBCI;
    double ESATII;
    double NTUN;
    double NTUND;
    double NRECF0;
    double NRECF0D;
    double NRECR0;
    double NRECR0D;
    double ISBJT;
    double IDBJT;
    double ISDIF;
    double IDDIF;
    double ISREC;
    double IDREC;
    double ISTUN;
    double IDTUN;
    double LN;
    double VREC0;
    double VREC0D;
    double VTUN0;
    double VTUN0D;
    double NBJT;
    double LBJT0;
    double LDIF0;
    double VABJT;
    double AELY;
    double AHLI;
    double AHLID;
    double RBODY;
    double RBSH;
    double CGEO;
    double TT;
    double NDIF;
    double VSDFB;
    double VSDTH;
    double CSDMIN;
    double ASD;
    double CSDESW;
    double NTRECF;
    double NTRECR;
    double DLCB;
    double FBODY;
    double TCJSWG;
    double TPBSWG;
    double TCJSWGD;
    double TPBSWGD;
    double ACDE;
    double MOIN;
    double NOFF;
    double DELVT;
    double KB1;
    double DLBG;
    double CFRCOEFF;
    int IGBMOD;
    int IGMOD;
    int IGCMOD;
    double TOXQM;
    double WTH0;
    double RHALO;
    double NTOX;
    double TOXREF;
    double EBG;
    double VEVB;
    double ALPHAGB1;
    double BETAGB1;
    double VGB1;
    double VECB;
    double ALPHAGB2;
    double BETAGB2;
    double VGB2;
    double AIGBCP2;
    double BIGBCP2;
    double CIGBCP2;
    double VOXH;
    double DELTAVOX;
    double AIGC;
    double BIGC;
    double CIGC;
    double AIGSD;
    double BIGSD;
    double CIGSD;
    double NIGC;
    double PIGCD;
    double POXEDGE;
    double DLCIG;
    double VBS0PD;
    double VBS0FD;
    double VBSA;
    double NOFFFD;
    double VOFFFD;
    double K1B;
    double K2B;
    double DK2B;
    double DVBD0;
    double DVBD1;
    double MOINFD;
    double XRCRG1;
    double XRCRG2;
    double RSHG;
    double NGCON;
    double XGW;
    double XGL;
    int RDSMOD;
    int FDMOD;
    double VSCE;
    double CDSBS;
    double MINVCV;
    double LMINVCV;
    double WMINVCV;
    double PMINVCV;
    double VOFFCV;
    double LVOFFCV;
    double WVOFFCV;
    double PVOFFCV;
    double LXJ;
    double LALPHAGB1;
    double LBETAGB1;
    double LALPHAGB2;
    double LBETAGB2;
    double LAIGBCP2;
    double LBIGBCP2;
    double LCIGBCP2;
    double LCGSL;
    double LCGDL;
    double LCKAPPA;
    double LNDIF;
    double LUTE;
    double LKT1;
    double LKT1L;
    double LKT2;
    double LUA1;
    double LUB1;
    double LUC1;
    double LAT;
    double LPRT;
    double LNTRECF;
    double LNTRECR;
    double LXBJT;
    double LXDIF;
    double LXREC;
    double LXTUN;
    double LXDIFD;
    double LXRECD;
    double LXTUND;
    double LAIGC;
    double LBIGC;
    double LCIGC;
    double LAIGSD;
    double LBIGSD;
    double LCIGSD;
    double LNIGC;
    double LPIGCD;
    double LPOXEDGE;
    double LNCH;
    double LNSUB;
    double LNGATE;
    double LNSD;
    double LVTH0;
    double LVFB;
    double LK1;
    double LK1W1;
    double LK1W2;
    double LK2;
    double LK3;
    double LK3B;
    double LKB1;
    double LW0;
    double LLPEB;
    double LDVT0;
    double LDVT1;
    double LDVT2;
    double LDVT0W;
    double LDVT1W;
    double LDVT2W;
    double LU0;
    double LEU;
    double LUA;
    double LUB;
    double LUC;
    double LUD;
    double LUD1;
    double LUCSTE;
    double LUCS;
    double LVSAT;
    double LA0;
    double LAGS;
    double LB0;
    double LB1;
    double LKETA;
    double LKETAS;
    double LA1;
    double LA2;
    double LRDSW;
    double LRSW;
    double LRDW;
    double LPRWB;
    double LPRWG;
    double LWR;
    double LNFACTOR;
    double LDWG;
    double LDWB;
    double LVOFF;
    double LETA0;
    double LETAB;
    double LETA0CV;
    double LETABCV;
    double LDSUB;
    double LCIT;
    double LCDSC;
    double LCDSCB;
    double LCDSCD;
    double LPCLM;
    double LPDIBLC1;
    double LPDIBLC2;
    double LPDIBLCB;
    double LDROUT;
    double LPVAG;
    double LDELTA;
    double LALPHA0;
    double LFBJTII;
    double LABJTII;
    double LCBJTII;
    double LEBJTII;
    double LMBJTII;
    double LVBCI;
    double LBETA0;
    double LBETA1;
    double LBETA2;
    double LVDSATII0;
    double LLII;
    double LESATII;
    double LSII0;
    double LSII1;
    double LSII2;
    double LSIID;
    double LAGIDL;
    double LBGIDL;
    double LCGIDL;
    double LRGIDL;
    double LKGIDL;
    double LFGIDL;
    double LAGISL;
    double LBGISL;
    double LCGISL;
    double LRGISL;
    double LKGISL;
    double LFGISL;
    double LNTUN;
    double LNTUND;
    double LNDIODE;
    double LNDIODED;
    double LNRECF0;
    double LNRECF0D;
    double LNRECR0;
    double LNRECR0D;
    double LISBJT;
    double LIDBJT;
    double LISDIF;
    double LIDDIF;
    double LISREC;
    double LIDREC;
    double LISTUN;
    double LIDTUN;
    double LVREC0;
    double LVREC0D;
    double LVTUN0;
    double LVTUN0D;
    double LNBJT;
    double LLBJT0;
    double LVABJT;
    double LAELY;
    double LAHLI;
    double LAHLID;
    double LVSDFB;
    double LVSDTH;
    double LDELVT;
    double LACDE;
    double LMOIN;
    double LNOFF;
    double LXRCRG1;
    double LXRCRG2;
    double WXJ;
    double WALPHAGB1;
    double WBETAGB1;
    double WALPHAGB2;
    double WBETAGB2;
    double WAIGBCP2;
    double WBIGBCP2;
    double WCIGBCP2;
    double WCGSL;
    double WCGDL;
    double WCKAPPA;
    double WNDIF;
    double WUTE;
    double WKT1;
    double WKT1L;
    double WKT2;
    double WUA1;
    double WUB1;
    double WUC1;
    double WAT;
    double WPRT;
    double WNTRECF;
    double WNTRECR;
    double WXBJT;
    double WXDIF;
    double WXREC;
    double WXTUN;
    double WXDIFD;
    double WXRECD;
    double WXTUND;
    double WAIGC;
    double WBIGC;
    double WCIGC;
    double WAIGSD;
    double WBIGSD;
    double WCIGSD;
    double WNIGC;
    double WPIGCD;
    double WPOXEDGE;
    double WNCH;
    double WNSUB;
    double WNGATE;
    double WNSD;
    double WVTH0;
    double WVFB;
    double WK1;
    double WK1W1;
    double WK1W2;
    double WK2;
    double WK3;
    double WK3B;
    double WKB1;
    double WW0;
    double WLPEB;
    double WDVT0;
    double WDVT1;
    double WDVT2;
    double WDVT0W;
    double WDVT1W;
    double WDVT2W;
    double WU0;
    double WEU;
    double WUA;
    double WUB;
    double WUC;
    double WUD;
    double WUD1;
    double WUCSTE;
    double WUCS;
    double WVSAT;
    double WA0;
    double WAGS;
    double WB0;
    double WB1;
    double WKETA;
    double WKETAS;
    double WA1;
    double WA2;
    double WRDSW;
    double WRSW;
    double WRDW;
    double WPRWB;
    double WPRWG;
    double WWR;
    double WNFACTOR;
    double WDWG;
    double WDWB;
    double WVOFF;
    double WETA0;
    double WETAB;
    double WETA0CV;
    double WETABCV;
    double WDSUB;
    double WCIT;
    double WCDSC;
    double WCDSCB;
    double WCDSCD;
    double WPCLM;
    double WPDIBLC1;
    double WPDIBLC2;
    double WPDIBLCB;
    double WDROUT;
    double WPVAG;
    double WDELTA;
    double WALPHA0;
    double WFBJTII;
    double WABJTII;
    double WCBJTII;
    double WEBJTII;
    double WMBJTII;
    double WVBCI;
    double WBETA0;
    double WBETA1;
    double WBETA2;
    double WVDSATII0;
    double WLII;
    double WESATII;
    double WSII0;
    double WSII1;
    double WSII2;
    double WSIID;
    double WAGIDL;
    double WBGIDL;
    double WCGIDL;
    double WRGIDL;
    double WKGIDL;
    double WFGIDL;
    double WAGISL;
    double WBGISL;
    double WCGISL;
    double WRGISL;
    double WKGISL;
    double WFGISL;
    double WNTUN;
    double WNTUND;
    double WNDIODE;
    double WNDIODED;
    double WNRECF0;
    double WNRECF0D;
    double WNRECR0;
    double WNRECR0D;
    double WISBJT;
    double WIDBJT;
    double WISDIF;
    double WIDDIF;
    double WISREC;
    double WIDREC;
    double WISTUN;
    double WIDTUN;
    double WVREC0;
    double WVREC0D;
    double WVTUN0;
    double WVTUN0D;
    double WNBJT;
    double WLBJT0;
    double WVABJT;
    double WAELY;
    double WAHLI;
    double WAHLID;
    double WVSDFB;
    double WVSDTH;
    double WDELVT;
    double WACDE;
    double WMOIN;
    double WNOFF;
    double WXRCRG1;
    double WXRCRG2;
    double PXJ;
    double PALPHAGB1;
    double PBETAGB1;
    double PALPHAGB2;
    double PBETAGB2;
    double PAIGBCP2;
    double PBIGBCP2;
    double PCIGBCP2;
    double PCGSL;
    double PCGDL;
    double PCKAPPA;
    double PNDIF;
    double PUTE;
    double PKT1;
    double PKT1L;
    double PKT2;
    double PUA1;
    double PUB1;
    double PUC1;
    double PAT;
    double PPRT;
    double PNTRECF;
    double PNTRECR;
    double PXBJT;
    double PXDIF;
    double PXREC;
    double PXTUN;
    double PXDIFD;
    double PXRECD;
    double PXTUND;
    double PAIGC;
    double PBIGC;
    double PCIGC;
    double PAIGSD;
    double PBIGSD;
    double PCIGSD;
    double PNIGC;
    double PPIGCD;
    double PPOXEDGE;
    double PNCH;
    double PNSUB;
    double PNSD;
    double PNGATE;
    double PVTH0;
    double PVFB;
    double PK1;
    double PK1W1;
    double PK1W2;
    double PK2;
    double PK3;
    double PK3B;
    double PKB1;
    double PW0;
    double PLPEB;
    double PDVT0;
    double PDVT1;
    double PDVT2;
    double PDVT0W;
    double PDVT1W;
    double PDVT2W;
    double PU0;
    double PEU;
    double PUA;
    double PUB;
    double PUC;
    double PUD;
    double PUD1;
    double PUCSTE;
    double PUCS;
    double PVSAT;
    double PA0;
    double PAGS;
    double PB0;
    double PB1;
    double PKETA;
    double PKETAS;
    double PA1;
    double PA2;
    double PRDSW;
    double PRSW;
    double PRDW;
    double PPRWB;
    double PPRWG;
    double PWR;
    double PNFACTOR;
    double PDWG;
    double PDWB;
    double PVOFF;
    double PETA0;
    double PETAB;
    double PETA0CV;
    double PETABCV;
    double PDSUB;
    double PCIT;
    double PCDSC;
    double PCDSCB;
    double PCDSCD;
    double PPCLM;
    double PPDIBLC1;
    double PPDIBLC2;
    double PPDIBLCB;
    double PDROUT;
    double PPVAG;
    double PDELTA;
    double PALPHA0;
    double PFBJTII;
    double PABJTII;
    double PCBJTII;
    double PEBJTII;
    double PMBJTII;
    double PVBCI;
    double PBETA0;
    double PBETA1;
    double PBETA2;
    double PVDSATII0;
    double PLII;
    double PESATII;
    double PSII0;
    double PSII1;
    double PSII2;
    double PSIID;
    double PAGIDL;
    double PBGIDL;
    double PCGIDL;
    double PRGIDL;
    double PKGIDL;
    double PFGIDL;
    double PAGISL;
    double PBGISL;
    double PCGISL;
    double PRGISL;
    double PKGISL;
    double PFGISL;
    double PNTUN;
    double PNTUND;
    double PNDIODE;
    double PNDIODED;
    double PNRECF0;
    double PNRECF0D;
    double PNRECR0;
    double PNRECR0D;
    double PISBJT;
    double PIDBJT;
    double PISDIF;
    double PIDDIF;
    double PISREC;
    double PIDREC;
    double PISTUN;
    double PIDTUN;
    double PVREC0;
    double PVREC0D;
    double PVTUN0;
    double PVTUN0D;
    double PNBJT;
    double PLBJT0;
    double PVABJT;
    double PAELY;
    double PAHLI;
    double PAHLID;
    double PVSDFB;
    double PVSDTH;
    double PDELVT;
    double PACDE;
    double PMOIN;
    double PNOFF;
    double PXRCRG1;
    double PXRCRG2;
    double NLX;
    double LNLX;
    double WNLX;
    double PNLX;
    double NGIDL;
    double LNGIDL;
    double WNGIDL;
    double PNGIDL;
    double LPE0;
    double EGIDL;
    double EGISL;
    double LLPE0;
    double LEGIDL;
    double LEGISL;
    double WLPE0;
    double WEGIDL;
    double WEGISL;
    double PLPE0;
    double PEGIDL;
    double PEGISL;
    double EGGBCP2;
    double EGGDEP;
    double AGB1;
    double BGB1;
    double AGB2;
    double BGB2;
    double AGBC2N;
    double AGBC2P;
    double BGBC2N;
    double BGBC2P;
    double VTM00;
    //  Variables of global_model scope
    // end verilog model variables=====
};

void registerDevice(const DeviceCountMap& deviceMap = DeviceCountMap(),
                    const std::set<int>& levelSet = std::set<int>());

} // namespace ADMSbsimsoi450
} // namespace Device
} // namespace Xyce
#endif //Xyce_N_DEV_ADMSbsimsoi450_h
